Первый импортный продукт из itertools
from itertools import product
res = pd.DataFrame((product(df['A'],df['B'])),columns=['A',"B"])
res был бы теперь этим
каждое значение повторяется для каждого столбца
A B
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
12 d 1
Теперь вы можете выполнять любые пользовательские функции, которые хотите применить,
Как конкатенация упоминается, так это путь
finalList = list(res['A'].astype(str)+res['B'].astype(str))
print(finalList)
результат:
['a1', 'a2', 'a3', 'a4', 'b1', 'b2', 'b3', 'b4', 'c1', 'c2', 'c3', 'c4', 'd1', 'd2', 'd3', 'd4']