title: What algorithm can calculate the power set of a given set?
body: <p>I would like to efficiently generate a unique list of combinations of numbers based on a starting list of numbers.  </p>
  
  <p>example start <code>list = [1,2,3,4,5]</code> but the algorithm should work for <code>[1,2,3...n]</code></p>
  
  <pre><code>result = 
  
  [1],[2],[3],[4],[5]
  [1,2],[1,3],[1,4],[1,5]
  [1,2,3],[1,2,4],[1,2,5]
  [1,3,4],[1,3,5],[1,4,5]
  [2,3],[2,4],[2,5]
  [2,3,4],[2,3,5]
  [3,4],[3,5]
  [3,4,5]
  [4,5]
  </code></pre>
  
  <p>Note.  I don't want duplicate combinations, although I could live with them, eg in the above example I don't really need the combination [1,3,2] because it already present as [1,2,3]</p>