有两个列表。 list_1 = [a1,b1,c1,d1] list_2 = [a2,b2,c2,d2]
条件是(i)每个组合中必须有四个元素,并且(ii)组合中应包含a的一个元素(即a1或a2),b的一个元素(即b1或b2),一个c的元素(即c1或c2)和d的一个元素(即d1或d2)。
请帮助我使用python 3x找出不同的组合。
答案 0 :(得分:5)
您可以使用itertools.product
:
from itertools import product
list_1 = ['a1','b1','c1','d1']
list_2 = ['a2','b2','c2','d2']
result = list(product(*zip(list_1, list_2)))
print(result)
[('a1', 'b1', 'c1', 'd1'), ('a1', 'b1', 'c1', 'd2'), ('a1', 'b1', 'c2', 'd1'), ('a1', 'b1', 'c2', 'd2'), ('a1', 'b2', 'c1', 'd1'), ('a1', 'b2', 'c1', 'd2'), ('a1', 'b2', 'c2', 'd1'), ('a1', 'b2', 'c2', 'd2'), ('a2', 'b1', 'c1', 'd1'), ('a2', 'b1', 'c1', 'd2'), ('a2', 'b1', 'c2', 'd1'), ('a2', 'b1', 'c2', 'd2'), ('a2', 'b2', 'c1', 'd1'), ('a2', 'b2', 'c1', 'd2'), ('a2', 'b2', 'c2', 'd1'), ('a2', 'b2', 'c2', 'd2')]