title: TypeError: type object argument after * must be a sequence, not generator
body: <p>Why does the following Python code raise an error<br>
  <code>TypeError: type object argument after * must be a sequence, not generator</code><br>
  while if I comment the first (useless) line in generator f, everything works fine?</p>
  
  <pre class="lang-py prettyprint-override"><code>from itertools import izip
  
  def z():
      for _ in range(10): 
          yield _
  
  def f(z):
      for _ in z: pass    # if I comment this line it works! (??)
      for x in range(10):
          yield (x,10*x,100*x,1000*x)
  
  iterators =  izip(*f(z))
  for it in iterators:
      print list(it)
  </code></pre>
  
  <p>N.B. What I am actually trying to do is, with a single generator, return multiple iterators (as many as I will pass to the generator as arguments). The only way I found to do that is to yield tuples and use izip() on them - black magic to me.</p>