powerSet<T> function
Power Set Generation: returns all subsets of the input set.
Example: powerSet({1, 2}) => { {}, {1}, {2}, {1,2} }
Implementation
Set<Set<T>> powerSet<T>(Set<T> input) {
final list = input.toList();
final result = <Set<T>>[<T>{}];
for (var element in list) {
final newSubsets = <Set<T>>[];
for (final subset in result) {
newSubsets.add({...subset, element});
}
result.addAll(newSubsets);
}
// Ensure the empty set is the first element
result.removeWhere((s) => s.isEmpty);
result.insert(0, <T>{});
return result.toSet();
}