Перерахуйте всі комбінації із заміною (або комбінаціями з повторенням) розміром k із набору n елементів.
Поєднання із заміною - це не упорядкований багатонаціональний набір, що кожен елемент в ньому також знаходиться у наборі n елементів. Зауважте, що:
- Це не упорядковано. Тому попередньо надрукований набір з іншим порядком не слід надрукувати знову.
- Це мультисети. Той самий елемент може (але не обов'язково) з'являтися не один раз. Це єдина різниця між комбінацією із заміною та звичайною комбінацією.
- Набір повинен мати рівно k елементів.
Крім того, це також підмножина розміру k з мультисети, яка містить кожен з n елементів k разів.
Вхід повинен бути або n і k , де елементи є першими n позитивними чи негативними цілими числами, або n елементів і k , де можна вважати, що n елементів різняться один від одного.
Вихід повинен бути переліком усіх комбінацій із заміною розміром k із заданого набору. Ви можете надрукувати їх та елементи в кожному з них у будь-якому порядку.
Ви не можете використовувати вбудовані, що генерують комбінації із заміною. Але ви можете використовувати вбудовані для створення нормальних комбінацій, перестановок, кортежів тощо.
Це код-гольф, найкоротший виграш коду.
Приклад
Input: 4 2
Output: [0 0] [0 1] [0 2] [0 3] [1 1] [1 2] [1 3] [2 2] [2 3] [3 3]