title: Equivalent of `return` for Python generators
body: <p>Sometimes, when rewriting recursive functions as generators, I miss the brevity of <code>return</code>.</p>
  
  <pre><code>"""
  Returns a list of all length n strings that can be made out of a's and/or b's.
  """
  def ab_star(n):
      if n == 0:
          return [""]
  
      results = []
      for s in ab_star(n - 1):
          results.append("a" + s)
          results.append("b" + s)
  
      return results
  </code></pre>
  
  <p>turns into</p>
  
  <pre><code>"""
  Generator for all length n strings that can be made out of a's and/or b's.
  """
  def ab_star(n):
      if n == 0:
          yield ""
  
      else:
          for s in ab_star(n - 1):
              yield "a" + s
              yield "b" + s
  </code></pre>
  
  <p>It's that <code>else</code> that bugs me. I wish there was a way to say "<code>yield</code>, and this is it, so exit the function". Is there a way?</p>