Itertools has it:
import itertools
x = [ [1,2,3],[4,5,6],[7,8,9]]
for y in list(itertools.product(*x)):
print y
it gives you:
(1, 4, 7)
(1, 4, 8)
(1, 4, 9)
(1, 5, 7)
(1, 5, 8)
(1, 5, 9)
(1, 6, 7)
...
(3, 6, 9)
3
solved Matrix indexing combinations but one per row