从n个整数列表(可能不等长)中进行所有可能的n个长度排列

时间:2015-03-23 05:01:02

标签: python algorithm combinations permutation itertools

示例:

list1 = [0,1,2]
list2 = [0,1]
list3 = [0,1,2,3]

然后排列将是:

0,0,0
0,0,1
0,0,2
0,0,3
0,1,0
0,1,1
0,1,2
0,1,3
1,0,0
1,0,1
1,0,2
1,0,3
1,1,0
1,1,1
1,1,2
1,1,3

......依此类推3 x 2 x 4 = 24种排列。

列表的数量不一定是3(它们可以是任意数字,n),顺序很重要,因此0,0,1与0,1,0不同。

我知道我可能不得不以某种方式使用itertools,但不知道如何处理它。由于列表数量不同,我无法制作三个嵌套循环。

这是this question的变体,但是列表的数量各不相同,而且顺序很重要。

我感谢任何帮助或提示。感谢。

1 个答案:

答案 0 :(得分:3)

list1 = [0,1,2]
list2 = [0,1]
list3 = [0,1,2,3]
listOfLists = [list1,list2,list3]
for list in itertools.product(*listOfLists):
    print(list)