在多个列表之间生成排列

Generate permutation among several lists

假设我有 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 中执行此操作?

一种方法是 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')]