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

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

    There is a refinement of powerset:

    def powerset(seq):
        """
        Returns all the subsets of this set. This is a generator.
        """
        if len(seq) <= 0:
            yield []
        else:
            for item in powerset(seq[1:]):
                yield [seq[0]]+item
                yield item
    

提交回复
热议问题