using System.Collections.Generic;
public static void Main()
List<int> numbers = new List<int>(){1,2,3,4,5};
List<int> possibleCombination = GetCombination(numbers, new List<int>(), 0);
Console.Write(string.Join(", ", possibleCombination.Distinct().OrderBy(itm => itm)));
static List<int> GetCombination(List<int> list, List<int> combinations, int sumNum, bool addNumberToResult = false)
for (int i = 0; i <= list.Count - 1; i++) {
List<int> tmp_list = new List<int>(list);
GetCombination(tmp_list,combinations,tmp, true);