title: How to dynamically create a dictionary from product of 2 lists at a time
body: <p>I have a large number of iterations (~60000) on each I get 2 lists at a time.<br>
  I need to keep some information about each possible combination of items from first/second list. if a pair is repeated I want to count it - not add, that's why I think dictionaries are more suitable.<br>
  I can do it with nested loops - but it takes forever.<br>
  I thought of using a dictionary of dictionaries.<br>
  I can tell all possible values ahead so I started with a dictionary with empty values - I want to add them iteratively.  </p>
  
  <p>If this is the input on the first iteration</p>
  
  <pre><code>l1 = ['1','2']
  l2 = ["A", "B"]
  </code></pre>
  
  <p>I expect to get:</p>
  
  <pre><code>{'1':{'A': [1, 0], 
        'B': [1, 0]}
   '2':{'A': [1, 0], 
        'B': [1, 0]},
   '3': {},
   '4': {},
   '5': {}}
   }
  </code></pre>
  
  <p>and after a second iteration with: </p>
  
  <pre><code>l1 = ['1','3','5']
  l2 = ['B','C']]
  </code></pre>
  
  <p>I expect to get:</p>
  
  <pre><code>{'1':{'A': [1, 0], 
        'B': [2, 0],
        'C': [1, 0]}
   '2':{'A': [1, 0], 
        'B': [1, 0]}
   '3':{'B': [1, 0], 
        'C': [1, 0]},
   '4':{},
   '5':{'B': [1, 0], 
        'C': [1, 0]}
   }
  </code></pre>
  
  <p>What's the most efficient way of doing it?</p>