title: Calculate all the possible combinations from a given sequence (in python)
body: <p>I have the following dictionary which contains all the possible codons (values|triplets) per amino acids (keys|letters). This dictionary is also known as the 'DNA codon table' in Bioinformatics.</p>
  
  <pre><code>codon_table = {
  'A': ('GCT', 'GCC', 'GCA', 'GCG'),
  'C': ('TGT', 'TGC'),
  'D': ('GAT', 'GAC'),
  'E': ('GAA', 'GAG'),
  'F': ('TTT', 'TTC'),
  'G': ('GGT', 'GGC', 'GGA', 'GGG'),
  'H': ('CAT', 'CAC'),
  'I': ('ATT', 'ATC', 'ATA'),
  'K': ('AAA', 'AAG'),
  'L': ('TTA', 'TTG', 'CTT', 'CTC', 'CTA', 'CTG'),
  'M': ('ATG',),
  'N': ('AAT', 'AAC'),
  'P': ('CCT', 'CCC', 'CCA', 'CCG'),
  'Q': ('CAA', 'CAG'),
  'R': ('CGT', 'CGC', 'CGA', 'CGG', 'AGA', 'AGG'),
  'S': ('TCT', 'TCC', 'TCA', 'TCG', 'AGT', 'AGC'),
  'T': ('ACT', 'ACC', 'ACA', 'ACG'),
  'V': ('GTT', 'GTC', 'GTA', 'GTG'),
  'W': ('TGG',),
  'Y': ('TAT', 'TAC'),}
  </code></pre>
  
  <p>I would like to create all the possible combinations of triplets for a given sequence of 'keys'. 
  For instance the <strong>FMW</strong> sequence should have the following two results:
  <em>TTTATGTGG</em> and <em>TTCATGTGG</em>. The number of combinations should be the product of the number of values of each key in the dictionary. In our case for the <strong>FMW</strong> should be 2*1*1 = 2 combinations. </p>
  
  <p>Which is the most pythonic and efficient way to do such calculations for sequences of 10 (and more) letters? Is there an already implemented method in any Biopython package? </p>
  
  <p>Thanks in advance.</p>