2015-09-22 34 views
-4

的列表中的所有可能的組合序列我有一個列表在Python發現在python

mylist = [0, 1, 2, 3, 4, 5] 

其中0是開始和5是端。 我想知道是否有一種方法來創建,如0和5之間的所有可能的序列:

mylist1 = [0, 2, 1, 3, 4, 5] 
mylist2 = [0, 3, 2, 1, 4, 5] 
mylist3 = [0, 4, 3, 2, 1, 5] 
mylist4 = [0, 2, 1, 3, 4, 5] 
mylist5 = [0, 3, 2, 1, 4, 5] 

回答

0

您可以使用和itertools.permutations

In [1]: import itertools 

In [2]: l = [0, 1, 2, 3, 4, 5] 

In [3]: tuple(itertools.permutations(l)) 
Out[3]: 
((0, 1, 2, 3, 4, 5), 
(0, 1, 2, 3, 5, 4), 
(0, 1, 2, 4, 3, 5), 
(0, 1, 2, 4, 5, 3), 
(0, 1, 2, 5, 3, 4), 
.... 
0

你應該使用itertools.permutations,像這樣:

import itertools 
gen = itertools.permutations([1, 2, 3, 4, 5, 6]) 
print gen.next() # prints (1, 2, 3, 4, 5, 6) 
print gen.next() # prints (1, 2, 3, 4, 6, 5) 
print gen.next() # prints (1, 2, 3, 5, 4, 6) 

繼續做直到StopIteration被提出。