Advertisement
ebak32

list order variations

Sep 16th, 2016
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.53 KB | None | 0 0
  1. def variations(cnt):
  2.  
  3.     def vary(lst):
  4.         # res = []
  5.         for i in range(len(lst)):
  6.             subLst = lst[:]
  7.             a = subLst.pop(i)
  8.             if len(subLst) > 1:
  9.                 for vsub in vary(subLst):
  10.                     yield [a] + vsub
  11.                     # res.append([a] + vsub)
  12.             else:
  13.                 yield [a] + subLst
  14.                 #res.append([a] + subLst)
  15.         #return res
  16.    
  17.     return vary(range(cnt))
  18.  
  19.  
  20. for i, v in enumerate(variations(3)):
  21.     print '{}: {}'.format(i, v)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement