fork download
  1. def UltimosN(L, n, L2=[]):
  2. if not n:
  3. return L2
  4. L2.append(L[-1])
  5. return UltimosN(L[:-1], n-1, L2)
  6.  
  7. print(UltimosN([1,2,3,4,5], 3))
  8.  
  9.  
  10.  
  11. def invertir(L):
  12. return L[::-1]
  13.  
  14. def combinaciones(L, n):
  15. if len(L) == n:return [L]
  16. if not n:return [[ ]]
  17. c = []
  18. for i in combN(L[1:], n - 1):
  19. c.append([L[0]] + i)
  20. c += combN(L[1:], n)
  21. return c
  22.  
  23.  
  24. def permutaciones(L):
  25. if len(L) <= 1:
  26. return [L]
  27. c = []
  28. for i in range(len(L)):
  29. for j in permutaciones(L[:i] + L[i+1:]):
  30. c.append([L[i]] + j)
  31. return c
  32.  
  33. print(permutaciones(["A", "B", "C","D"]))
  34.  
  35. def nextPerm(L):
  36. i= len(L)-2
  37. j= len(L) -1
  38. while i >= 0 and L[i] >=L[i+1]:
  39. i -= 1
  40. if i ==-1:return L[::-1]
  41. while L[j] <= L[i]:
  42. j -= 1
  43. L[i], L[j] = L[j], L[i]
  44. x,y = i+1, len(L)-1
  45. while x < y:
  46. L[x],L[y] = L[y],L[x]
  47. x+=1
  48. y-=1
  49. return L
  50.  
  51.  
Success #stdin #stdout 0.05s 9652KB
stdin
Standard input is empty
stdout
[5, 4, 3]
[['A', 'B', 'C', 'D'], ['A', 'B', 'D', 'C'], ['A', 'C', 'B', 'D'], ['A', 'C', 'D', 'B'], ['A', 'D', 'B', 'C'], ['A', 'D', 'C', 'B'], ['B', 'A', 'C', 'D'], ['B', 'A', 'D', 'C'], ['B', 'C', 'A', 'D'], ['B', 'C', 'D', 'A'], ['B', 'D', 'A', 'C'], ['B', 'D', 'C', 'A'], ['C', 'A', 'B', 'D'], ['C', 'A', 'D', 'B'], ['C', 'B', 'A', 'D'], ['C', 'B', 'D', 'A'], ['C', 'D', 'A', 'B'], ['C', 'D', 'B', 'A'], ['D', 'A', 'B', 'C'], ['D', 'A', 'C', 'B'], ['D', 'B', 'A', 'C'], ['D', 'B', 'C', 'A'], ['D', 'C', 'A', 'B'], ['D', 'C', 'B', 'A']]