如何在两个列表之间找到不同的组合?

时间:2019-01-14 06:04:20

标签: python python-3.x combinations

有两个列表。 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找出不同的组合。

1 个答案:

答案 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')]