Как создать декартово произведение по произвольным группам чисел в Java?

Допустим, у меня есть 2 группы чисел:

{1, 2, 3},
{4, 5}

Я хочу создать алгоритм (на Java ), который выводит следующие 6 комбинаций:

1,4
1,5
2,4
2,5
3,4
3,5

Может быть произвольное количество групп и произвольное количество участников в каждой группе. Таким образом, в приведенном выше примере есть 2 группы, в первой из которых 3 члена, а во второй группе 2 члена. Другим примером являются следующие (3 группы, 3 члена в первой группе и 2 члена во второй и третьей группах):

{1, 2, 3},
{4, 5},
{6, 7}

Что даст следующие 12 комбинаций:

1,4,6
1,4,7
1,5,6
1,5,7

2,4,6
2,4,7
2,5,6
2,5,7

3,4,6
3,4,7
3,5,6
3,5,7

Как я могу сделать это в Java? Я пытаюсь использовать рекурсию, и я уже рассматривал похожий вопрос , но мне все еще не хватает. Спасибо за помощь! (П.С. это не для домашнего задания)

11
задан Community 23 May 2017 в 10:31
поделиться