如何获得一组python的所有子集

时间:2018-12-26 09:06:13

标签: python python-3.x

我必须定义一个像3这样的数字,然后将其设为一个集合

x = set(range(1,n+1))

,然后显示此集合的所有子集:

{}
{1}
{1, 2}
{1, 2, 3}
{1, 3}
{2}
{2, 3}
{3}

1 个答案:

答案 0 :(得分:0)

def get_result(x):
    len_x = len(x)
    res = []
    for i in range(0, 2**(len_x)):
        res.append(take(x, i))
    print("count:{}".format(len(res)))
    return res

def take(x, i):
    res = set()
    idx = 1
    while i:
        if i & 1:
            res.add(idx)
        idx += 1
        i >>= 1
    return res

print(get_result({1, 2, 3}))
print(get_result({1, 2, 3, 4}))

您是否正在寻找上述简单的解决方案?