Pandas - combine two Series by all unique combinations

Assuming the 2 series are s and s1, use itertools.product() which gives a cartesian product of input iterables :

import itertools
df = pd.DataFrame(list(itertools.product(s,s1)),columns=['letter','number'])
print(df)

    letter  number
0       A       1
1       A       2
2       A       3
3       A       4
4       B       1
5       B       2
6       B       3
7       B       4
8       C       1
9       C       2
10      C       3
11      C       4

If you have 2 Series s1 and s2. you can do this:

pd.DataFrame(index=s1,columns=s2).unstack().reset_index()[["s1","s2"]]

It will give you the follow

   s1  s2
0   A   1
1   B   1
2   C   1
3   A   2
4   B   2
5   C   2
6   A   3
7   B   3
8   C   3
9   A   4
10  B   4
11  C   4