def powerset(items, min_items=<NUM_LIT:0>, include_full_pop=True):
items = list(items)    <EOL>max_items = len(items) + <NUM_LIT:1> if include_full_pop else len(items)<EOL>min_items = min_items or <NUM_LIT:0><EOL>return list(itertools.chain.from_iterable(<EOL>itertools.combinations(items, k)<EOL>for k in range(min_items, max_items)))<EOL>
Build the powerset of a collection of items.

:param Iterable[object] items: "Pool" of all items, the population for
    which to build the power set.
:param int min_items: Minimum number of individuals from the population
    to allow in any given subset.
:param bool include_full_pop: Whether to include the full population in
    the powerset (default True to accord with genuine definition)
:return list[object]: Sequence of subsets of the population, in
    nondecreasing size order