Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private static IEnumerable<List<T>> GenerateAllCombinations<T>(IList<T> set, int subsetPower)
- {
- var subsetIndexes = Enumerable.Range(0, subsetPower).ToArray();
- while (true)
- {
- yield return subsetIndexes.Select(x => set[x]).ToList();
- var index = subsetPower - 1;
- while (index >= 0 && subsetIndexes[index] == set.Count + index - subsetPower) index--;
- if (index < 0) break;
- subsetIndexes[index]++;
- while (index++ < subsetPower - 1) subsetIndexes[index] = subsetIndexes[index - 1] + 1;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement