打印一个集合的所有子集(python)

使用recusion的方法,代码如下:

def subsets(list):
    if len(list) == 0:
        return [list] #[[]]
    else:
        sub_incl = []
        sub_excl = subsets(list[1:])
        for elem in sub_excl:
            sub_incl.append([list[0]]+elem)
        return sub_excl+sub_incl


print(subsets([1, 2, 3]))

用到list.append(),程序执行的步骤可以在pyhtontutor(http://pythontutor.com/live.html#mode=edit)上一步步进行检验。

打印一个集合的所有子集(python)_第1张图片

你可能感兴趣的:(数据结构和算法)