Jak uzyskać wszystkie unikalne kombinacje n-długich zestawów powtarzających się elementów?

Znalazłem wiele rozwiązań dających elementy kolekcji połączone we wszystkich możliwych zamówieniach, ale wszystkie używają każdego elementu tylko raz w każdym wyniku, a ja potrzebuję je traktować jako wielokrotnego użytku.

Na przykład, jeśli elementami wejściowymi są {"a", "b", "c"}, a liczba wynosi 2, wyjście ma być {"a", "a"}, {"a", "b"}, { „a”, „c”}, {„b”, „a”}, {„b”, „b”}, {„b”, „c”}, {„c”, „a”}, { „c”, „b”}, {„a”, „c”}.

questionAnswers(5)

yourAnswerToTheQuestion