在几个列表中生成排列

时间:2015-04-06 22:54:59

标签: python list permutation

假设我有A = [a,b,c],B = [d,e],C = [f,g],我想要A,B和C中所有可能的排列。

前:

 [[a,d,f],[a,d,g],[b,d,f],[b,d,g],[c,d,f],[c,d,g],[a,e,f],[a,e,g],[b,e,f],[b,e,g],[c,e,f],[c,e,g]]

我如何在python中执行此操作?

1 个答案:

答案 0 :(得分:0)

一种方法是使用itertools.product:

>>> from itertools import product
>>> list(product(A,B,C))
[('a', 'd', 'f'),
 ('a', 'd', 'g'),
 ('a', 'e', 'f'),
 ('a', 'e', 'g'),
 ('b', 'd', 'f'),
 ('b', 'd', 'g'),
 ('b', 'e', 'f'),
 ('b', 'e', 'g'),
 ('c', 'd', 'f'),
 ('c', 'd', 'g'),
 ('c', 'e', 'f'),
 ('c', 'e', 'g')]