title: Getting ALL possible combination of integers from an integer collection without fixed length in C#
body: <p>I have a problem I need to solve efficiently.</p>
  <p>PROBLEM:
  I have a 1 collection of integers of length(n). There could be duplicates.
  I want to get all the possible combinations of those integers. The result is not a fixed length.</p>
  <p>ie.</p>
  <p>Given the collection of integers: [1,2,2,3]</p>
  <p>The expected output should be:
  [1]
  [1,2]
  [1,3]
  [1,2,2]
  [1,2,2,3]
  [1,2,3]
  [2,2]
  [2,3]
  [2,2,3]</p>
  <p>How to do this in c#, I would prefer a linq version, but other solutions are welcome.</p>
  <p>Thanks</p>