Creando permutaciones desde una matriz multidimensional en Ruby

Tengo la siguiente matriz multidimensional en Ruby:

[[1,2], [3], [4,5,6]]

Necesito tener el siguiente resultado:

[[1,3,4], [1,3,5], [1,3,6], [2,3,4], [2,3,5], [2,3,6]]

He intentado crear una función recursiva, pero no tengo mucha suerte.

¿Hay alguna función de Ruby que ayude con esto? ¿O es la única opción para hacerlo de forma recursiva?

Gracia