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

Sometimes, we want to get all subsets of a set (powerset) with Python.

In this article, we’ll look at how to get all subsets of a set (powerset) with Python.

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

To get all subsets of a set (powerset) with Python, we can use the chain.from_iterable and combinations functions.

For instance, we write:

from itertools import chain, combinations


def powerset(iterable):
    s = list(iterable)
    return chain.from_iterable(combinations(s, r) for r in range(len(s) + 1))


p = list(powerset("abc"))
print(p)

We define the powerset function that takes an iterable object.

In the function, we convert the iterable object to a list with list.

Then we call chain.from_iterable with the list of combinations of all the elements in s.

We get all combinatins with r going from 0 to range(len(s) + 1).

Each combination is stored in a tuple.

Therefore, p is:

[(), ('a',), ('b',), ('c',), ('a', 'b'), ('a', 'c'), ('b', 'c'), ('a', 'b', 'c')]

Conclusion

To get all subsets of a set (powerset) with Python, we can use the chain.from_iterable and combinations functions.