How to get all subsets of a set? (powerset)

前端 未结 28 2804
庸人自扰
庸人自扰 2020-11-22 05:18

Given a set

{0, 1, 2, 3}

How can I produce the subsets:

[set(),
 {0},
 {1},
 {2},
 {3},
 {0, 1},
 {0, 2},
 {0, 3},
 {1, 2}         


        
28条回答
  •  甜味超标
    2020-11-22 05:55

    All subsets in range n as set:

    n = int(input())
    l = [i for i in range (1, n + 1)]
    
    for number in range(2 ** n) :
        binary = bin(number)[: 1 : -1]
        subset = [l[i] for i in range(len(binary)) if binary[i] == "1"]
        print(set(sorted(subset)) if number > 0 else "{}")
    

提交回复
热议问题