Я ищу эффективный способ добиться этого:
-
у вас есть список чисел 1..... n (обычно: 1..5 или 1..7 или около того - достаточно маленький, но может варьироваться от случая к случаю)
-
вам нужны все комбинации всех длин для этих чисел, например. все комбинации одного числа ({1}, {2},.... {n}), затем все комбинации двух различных чисел ({1,2}, {1,3}, {1,4}..... {n-1, n}), то все комбинации fo трех из этих чисел ({1,2,3}, {1,2,4}) и т.д.
В принципе, внутри группы порядок не имеет значения, поэтому {1,2,3} эквивалентен {1,3,2} - это просто вопрос получения всех групп из x чисел из этого списка
Похоже, для этого должен быть простой алгоритм, но до сих пор я тщетно искал. Большинство комбинаторика и алгоритмы перестановок, по-видимому, a) учитывают порядок (например, 123 не равно 132), и они всегда работают на одной строке символов или чисел....
У кого-нибудь есть отличный, хороший алгоритм с их рукавом?
Спасибо!