The Powerset is all combinations of an array’s elements.
def powerset(arr):
if len(arr) <= 0:
yield []
else:
for item in powerset(arr[1:]):
yield [arr[0]] + item
yield itemIf iterated through in a list comprehension, this returns:
[x for x in powerset([1,2,3])][[1, 2, 3], [2, 3], [1, 3], [3], [1, 2], [2], [1], []]