powerSet method
Returns all subsets of this iterable including the empty set and the complete set itself. The power-set has 2^n elements, if the iterable has length n.
Note that despite the used set terminology, the resulting iterator contains List elements that are not de-duplicated. If you want unique set-elements, de-duplicate your input Iterable before calling this function.
For example ['x', 'y', 'z'].powerSet()
yields the following sets:
[]
'x'
'y'
'z'
'x', 'y'
'x', 'z'
'y', 'z'
'x', 'y', 'z'
Implementation
Iterable<List<E>> powerSet() sync* {
final list = toList(growable: false);
for (var i = 0; i <= list.length; i++) {
yield* list.combinations(i);
}
}