title: Straightforward way to get product of a dict keys with its values
body: <p>I have this dictionary for grouping filenames and extensions:</p>
  
  <pre><code>email_fields = {'txt': ('subject', 'plaintext_body'),
                  'html': ('html_body',)}
  </code></pre>
  
  <p>I need to get a list of tuples like this:</p>
  
  <pre><code>&gt;&gt;&gt; get_my_list(email_fields)
  [('txt', 'subject'), ('txt', 'plaintext_body'), ('html', 'html_body')]
  </code></pre>
  
  <p>I would like to use something like <code>starmap</code>, <code>product</code> and <code>chain</code> from <code>itertools</code> module to do it:</p>
  
  <pre><code>foo = starmap(product, email_fields.items())
  chain.from_iterable(foo)
  </code></pre>
  
  <p>The problem I have is that <code>product</code> takes two iterables and, as <code>email_fields</code>'s keys are strings, I get something like this:</p>
  
  <pre><code>[('t', 'subject'),
   ('t', 'plaintext_body'),
   ('x', 'subject'),
   ('x', 'plaintext_body'),
   ('t', 'subject'),
   ('t', 'plaintext_body')],
   ('h', 'html_body'),
   ('t', 'html_body'),
   ('m', 'html_body'),
   ('l', 'html_body')]
  </code></pre>
  
  <p>Is there a better way to do it? The closest I got works, but looks uglier:</p>
  
  <pre><code>foo = [product([ext], field) for ext, field in email_fields.items()]
  chain.from_iterable(foo)
  </code></pre>