Encontrar produto cartesiano em Java

Quero encontrar um produto cartesiano de um conjunto de elementos. Aqui está um exemplo

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

produto cartesiano é,

abc aba acc aca bbc bba bcc bca

example 2 :
sets : (zyx) b c

produto cartesiano é,

zbc ybc xbc

ntão, estou pensando em um algoritmo para executar em java, que pode encontrar produtos cartesianos de determinada quantidade de grupos definidos em tempo de compilação no iníci

questionAnswers(3)

yourAnswerToTheQuestion