title: 2^n Itertools combinations with advanced filtering
body: <p>I know that I can use itertools to pump out combinations, and define the size of the combination group, like so:</p>
  
  <pre><code>import itertools
  print list(itertools.combinations(['V','M','T','O','Q','K','D','R'], 4))
  </code></pre>
  
  <p>The output of this would be like a list of tuples, each of length 4 in this case.</p>
  
  <p>From here, what I'd like to do is enforce 2 parameters - 1)exclude any combinations/tuples that contain certain pairs - both V and M for instance, or Q and K. 2)Force each tuple to contain only 1 instance of a letter. I believe that itertools is already doing #2.</p>
  
  <p>What should remain are only those tuple groups that do not contain any of these pre-determined "false" pairs. So if I excluded a group that contained V and M, the group <code>('V','M','Q','D')</code> would be invalid, but <code>('V','R','Q','D')</code> would be valid.</p>
  
  <p>What's the best way for me to do this? </p>