title: combinatorics for programmers?
body: <p>I started writing a C# Silverlight program to try and find brute force solutions to the travelling sales man problems. But got stuck on trying to figure out all the possible routes.</p>
  
  <p>For my program I am generating random dots and trying to find the shortest line that can join them all, without visiting any twice. </p>
  
  <p>so if I have three dots A,B, &amp; C I would want to find all the different combinations of A,B, &amp; C, where each is only used once and the set is not the same as another set already found when reversed.</p>
  
  <p>eg:
  ABC
  ACB
  BAC</p>
  
  <p>But how can I compute all the combinations for any number of dots?</p>
  
  <p>I was writing this program for fun and I am now more interested in finding a good resource for learning about how to solve combinatorial problems in programming. Everything I have found for learning combinatorics tells me how to find to number of possible combinations and is useless for actually enumerating all the possible combinations. </p>