func powersetFrom(_ elements: Set) -> Set> { guard elements.count > 0 else { return [[]] } var powerset: Set> = [[]] for element in elements { for subset in powerset { powerset.insert(subset.union([element])) } } return powerset } // Example: powersetFrom([1, 2, 4])