【问题标题】:Find all combinations of N items in N groups without duplicates of item combos (python)?查找N组中N个项目的所有组合而没有重复的项目组合(python)?
【发布时间】:2013-09-25 17:18:10
【问题描述】:

我正在尝试找出一种方法来计算某个产品的所有可能的功能组合,并将它们作为列表返回,而不是重复。

我有以这种方式分组的项目(产品的功能):

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_c3a1_c3_b2 是重复的,并且我不希望返回的列表中有任何重复。

没有所有功能的产品,例如a1_b2b2 将不是有效产品,因此我也不希望返回列表中的产品。

我研究了 itertools,但我被困住了。 有什么想法吗?

【问题讨论】:

标签: python math iteration


【解决方案1】:

你肯定想要 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-11
    相关资源
    最近更新 更多