Я использую Mathematica 7, и с помощью функции пакета combinatorica я могу получить все комбинации определенного числа из списка элементов, где порядок не имеет значения и нет повторений. Например:
in: KSubsets[{a, b, c, d}, 3]
out: {{a, b, c}, {a, b, d}, {a, c, d}, {b, c, d}}
Я не могу найти функцию, которая выдала бы мне все комбинации определенного числа из списка элементов, где порядок не имеет значения и есть повторение. т.е. приведенный выше пример будет включать в вывод такие элементы, как {a, a, b}, {a, a, a}, {b, b, b} ... и т. д.
Может потребоваться пользовательская функция. Если я смогу придумать один, я отправлю ответ, но пока я не вижу очевидного решения.
Изменить: в идеале вывод не будет содержать дублирования комбинации, например. Кортежи [{a, b, c, d}, 3] вернут список, содержащий два элемента, такие как {a, a, b} и {b, a, a}, которые с точки зрения комбинаций являются одинаковыми.