title: Need to understand Python generator object
body: <p>In the following:</p>
  
  <pre><code>name = 'TODD'
  chars = set('AEIOU')
  for ii in range(-1, int(math.copysign(len(name) + 1, -1)), -1):
      if any((cc in chars) for cc in name[ii]):
          print 'Found'
      else:
          print 'Not Found'
  </code></pre>
  
  <p>I understand that what's inside any(...) is a generator object.  What I don't understand is the lack of parentheses - if the parentheses belong to the any() function, shouldn't there be another set of parentheses around the generator expression?</p>
  
  <p>Thanks.</p>