Генерация всех комбинаций из нескольких списков
Учитывая неизвестное количество списков, каждый с неизвестной длиной, мне нужно создать единый список со всеми возможными уникальными комбинациями. Например, даны следующие списки:
X: [A, B, C]
Y: [W, X, Y, Z]
Тогда я должен быть в состоянии генерировать 12 комбинаций:
[AW, AX, AY, AZ, BW, BX, BY, BZ, CW, CX, CY, CZ]
Если был добавлен третий список из 3 элементов, яиметь 36 комбинаций и т. д.
Любые идеи о том, как я могу сделать это на Java?
(псевдокод тоже подойдет)