title: python build a dynamic growing truth table
body: <p>My question is simple: 
  "how to build a dynamic growing truth table in python in an elegant way?"</p>
  
  <p>for n=3</p>
  
  <pre><code>for p in False, True:
      for q in False, True:
          for r in False, True:
              print '|{0} | {1} | {2} |'.format(int(p),int(q), int(r))
  </code></pre>
  
  <p>for n=4</p>
  
  <pre><code>for p in False, True:
      for q in False, True:
          for r in False, True:
              for s in False, True:
                  print '|{0} | {1} | {2} | {3}'.format(int(p),int(q), int(r), int(s))
  </code></pre>
  
  <p>I would like to have a function which takes n as a parameter and builds up the table, it is not necessary 
  to print the table, returning a data structure representing the table is fine also.</p>