Example:
1 2 3 8 10 5 6 7 12 9 11 4 0 1 2 3 5 6 7 9 11
Brute force solution:
def arrangements(k,arr):
if len(arr) == 1:
return [arr]
if k == 1:
return [ [i] for i in arr ]
else:
L=[]
for i in arr:
iarr = arr[:]
iarr.remove(i)
for v in arrangement (k-1,iarr):
L.append ( [i] + v )
return L
def is_ascending(arr):
res = True
for i in range(0,len(arr)-1):
if arr[i] > arr[i+1]:
res = False
break
return res
def longest_ascending(arr):
max_arg = None
max_size = 0
for k in range (1,len(arr)):
argts = arrangements (k,arr)
for a in argts:
if is_ascending(a) and len(a) > max_size:
max_size = len(a)
max_arg = a
return max_arg