The array of data will come from other source, so in this example I have declared them as array and with minimal data. But the combinations of the entries in lists will be a lot more over million combinations. It's like the length of ar1 * arr2 * arr3 etc.
arr1 = [1, 2]
arr2 = [10, 20]
arr3 = [0.1, 0.2]
df1 = pd.DataFrame(arr1, columns=["col1"])
df2 = pd.DataFrame(arr2, columns=["col2"])
df3 = pd.DataFrame(arr3, columns=["col3"])
Final result of the new DataFrame should be all of posible combinations of the given arrays:
col1 col2 col3
1 10 0.1
1 10 0.2
1 20 0.1
1 20 0.2
2 10 0.1
2 10 0.2
2 20 0.1
2 20 0.2