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

前端 未结 28 2784
庸人自扰
庸人自扰 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:59

    This can be done very naturally with itertools.product:

    import itertools
    
    def powerset(l):
        for sl in itertools.product(*[[[], [i]] for i in l]):
            yield {j for i in sl for j in i}
    

提交回复
热议问题