在python列表中查找所有可能的组合序列

在python列表中查找所有可能的组合序列,python,list,sequence,Python,List,Sequence,我有一个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] etc您应该这样使用: import it

我有一个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]
etc

您应该这样使用:

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

您可以使用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),
 ....