假设在python中我们有n个列表,如 A1,A2,...,An.
我们命名 A*={x1,x2,...,xn}
这些清单的组合,如果 x1
是在 A1, x2 is in A2,..., xn
是在 An
. 通过数学,我们知道这些组合的数量是: 。|A1| * |A2|*... * |An|
. 我如何在python中编写一个函数来完成这个任务并返回所有这些组合?
你可以使用 itertools.product
:
from itertools import product
a1 = range(0, 3)
a2 = range(3, 6)
a3 = range(6, 9)
print(list(product(a1, a2, a3)))
产出:
[(0, 3, 6), (0, 3, 7), (0, 3, 8), (0, 4, 6), (0, 4, 7), (0, 4, 8), (0, 5, 6), (0, 5, 7), (0, 5, 8), (1, 3, 6), (1, 3, 7), (1, 3, 8), (1, 4, 6), (1, 4, 7), (1, 4, 8), (1, 5, 6), (1, 5, 7), (1, 5, 8), (2, 3, 6), (2, 3, 7), (2, 3, 8), (2, 4, 6), (2, 4, 7), (2, 4, 8), (2, 5, 6), (2, 5, 7), (2, 5, 8)]