Producto cartesiano perfomante en matrices.

Estoy interesado en realizar un producto cartesiano en n matrices. Puedo escribir el código si sé el número de matrices antes de tiempo. Por ejemplo, dados 2 matrices:

int[] a = new int[]{1,2,3};
int[] b = new int[]{1,2,3};

for(int i=0; i<=a.length; i++){
    for(int j=0; j<=b.length; j++){
        System.out.println(a[i]*b[j]);
    }
}

El problema es que en el tiempo de ejecución, no sé el número de matrices. Puedo tener 2 matrices, o puedo tener 100 matrices. ¿Hay alguna manera de que pueda hacer esto? ¡Gracias!

Respuestas a la pregunta(2)

Su respuesta a la pregunta