我正在尝试找出一种方法来计算某个产品的所有可能的功能组合,并将它们作为列表返回,不重复。
我将项目(产品的功能)以这种方式分组:
a
a1
a2
a3
b
b1
b2
c
c1
c2
c3
c4
组和项目的数量未知,因此实际上有 N 个组和 N 个项目。
组合示例:
# Combinations with 3 groups
a1_b1_c1
a1_b2_c1
a1_b3_c1
...and so on
# Combinations with 4 groups
a1_b1_c1_d1
a1_b2_c1_d1
a1_b3_c1_d1
...and so on
我认为 a1_b2_c3
和 a1_c3_b2
是重复的,并且我不希望返回的列表中有任何重复项。
没有所有功能的产品(例如 a1_b2
或 b2
)将不是有效的产品,因此我也不希望这些产品出现在返回的列表中。
我研究过 itertools 但我陷入困境。 有什么想法吗?
最佳答案
您肯定想要 itertools.product:
import itertools
for i in itertools.product(['a1','a2','a3'], ['b1','b2'],['c1','c2','c3','c4']):
print '_'.join(i)
返回
a1_b1_c1
a1_b1_c2
a1_b1_c3
...
a3_b2_c1
a3_b2_c2
a3_b2_c3
a3_b2_c4
关于python - 找到 N 个组中 N 个项目的所有组合,而没有重复的项目组合(python)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19011276/