This solution should work for any `iterable` set.  I suggest that you move this functionality up to the top level definition of `powerset`

```Python
if self.is_iterable:
    return (FiniteSet(s) for s in subsets(self))
else:
    raise TypeError('Powerset of non-iterable set is not defined')
```