code: def power(set_):
      ensure_countable(set_)
      result = chain.from_iterable(combinations(set_, r)
                                   for r in xrange(len(set_) + 1))
      return _harmonize_subset_types(set_, result)