Encontrar producto cartesiano en Java

Quiero encontrar un producto cartesiano de un conjunto de elementos. Aquí hay un ejemplo

example 1 :
sets :(ab) (bc) (ca)

producto cartesiano es,

abc aba acc aca bbc bba bcc bca

example 2 :
sets : (zyx) b c

producto cartesiano es,

zbc ybc xbc

Así que estoy pensando en un algoritmo para ejecutar en Java que pueda encontrar un producto cartesiano de una cantidad particular de grupos definidos en el momento de la compilación al inicio.

Respuestas a la pregunta(3)

Su respuesta a la pregunta