Pandas Equivalente de SQL CROSS JOIN (Producto Cartesiano)

Digamos que tenía dos mesas:

Tabla 1:

col1 col2 0 1 2 3 

Tabla 2:

  col3 col4 5 6 7 8 

En SQL, si hiciera la siguiente statement:

 Select * From Table1, Table2; 

Espero recuperar una tabla con todas las combinaciones de ambas tablas:

 col1 col2 col3 col4 0 1 5 6 0 1 7 8 2 3 5 6 2 3 7 8 

¿Hay alguna manera de hacer lo mismo con dos marcos de datos en pandas?

Un idioma estándar es usar la merge en una columna ficticia.

 df1.assign(foo=1).merge(df2.assign(foo=1)).drop('foo', 1) col1 col2 col3 col4 0 0 1 5 6 1 0 1 7 8 2 2 3 5 6 3 2 3 7 8