title: Getting the subsets of a set in Python
body: <p>Suppose we need to write a function that gives the list of all the subsets of a set. The function and the doctest is given below. And we need to complete the whole definition of the function</p>
  
  <pre><code>def subsets(s):
     """Return a list of the subsets of s.
  
     &gt;&gt;&gt; subsets({True, False})
     [{False, True}, {False}, {True}, set()]
     &gt;&gt;&gt; counts = {x for x in range(10)} # A set comprehension
     &gt;&gt;&gt; subs = subsets(counts)
     &gt;&gt;&gt; len(subs)
     1024
     &gt;&gt;&gt; counts in subs
     True
     &gt;&gt;&gt; len(counts)
     10
     """
     assert type(s) == set, str(s) + ' is not a set.'
     if not s:
         return [set()]
     element = s.pop() 
     rest = subsets(s)
     s.add(element)    
  </code></pre>
  
  <hr>
  
  <p>It has to not use any built-in function</p>
  
  <p>My approach is to add "element" into rest and return them all, but I am not really familiar how to use set, list in Python. </p>