title: getting every possible combination in a list
body: <p>suppose I had something like this:</p>
  
  <pre><code>L1=['cat', 'dog', 'fish', 'rabbit', 'horse', 'bird', 'frog', 'mouse'...]
  
  for x in L1:
      input1= open('file_%s'%(x), 'r')
      file1= pickle.load(input1)
      for x in L1:
          input2= open('file_%s'%(x), 'r')
          file2= pickle.load(input2)
  </code></pre>
  
  <p>and I wanted to get every combination of files without repeating combinations that have already been done (once cat_dog is done do not do dog_cat again).  Is there a way I could do this?  My real list is in alphabetical order, if that makes any difference.</p>