Is there a Python function similar to the expand.grid() function in R ? Thanks in advance. (EDIT) Below are the description of this R function and an example. Create a Data Frame from All Combinations of Factors Description: Create a data frame from all combinations of the supplied vectors or factors. > x <- 1:3 > y <- 1:3 > expand.grid(x,y) Var1 Var2 1 1 1 2 2 1 3 3 1 4 1 2 5 2 2 6 3 2 7 1 3 8 2 3 9 3 3 (EDIT2) Below is an example with the rpy package. I would like to get the same output object but without using R : >>> from rpy import * >>> a = [1,2,3] >>> b = [5,7,9] >>> r.assign("a",a) [1, 2, 3] >>> r.assign("b",b) [5, 7, 9] >>> r("expand.grid(a,b)") {'Var1': [1, 2, 3, 1, 2, 3, 1, 2, 3], 'Var2': [5, 5, 5, 7, 7, 7, 9, 9, 9]} EDIT 02/09/2012: I'm really lost with Python. Lev Levitsky's code given in his answer does not work for me: >>> a = [1,2,3] >>> b = [5,7,9] >>> expandgrid(a, b) Traceback (most recent call last): File "<stdin>", line 1, in <module> File "<stdin>", line 2, in expandgrid NameError: global name 'itertools' is not defined However the itertools module seems to be installed (typing from itertools import * does not return any error message) Continue reading...