首页 > 解决方案 > 如何在python中找到所有有限制的子集?

问题描述

所以我在做梳子。拍卖算法,我喜欢给他 N 件物品,例如

(A,B,C)

我希望算法给我以下结果

(A,B,C)
(ABC)
(AB,C)
(AC,B)
(BC,A)

有任何想法吗 ?

我试过这个,但还不够

k =[1,2,3]
def powerset(xs):
    result = [[]]
    for x in xs:
        subsets = [subset + [x]  for subset in result]
        result.extend(subsets)
    return result
print (powerset(k))

标签: pythonsubsetpowerset

解决方案


这是一个需要递归的分区问题。这里已经回答了: Set partitions in Python


推荐阅读