Here it is in raw Python.
import pandas as pd
import itertools as itt
data = {'column1': ['ABC', 'BCD', 'EFG', 'HU', 'KLM'],
'column2': ['BCD', 'EFG', None, None, None],
'column3': ['KLM', 'MNO', 'EFG', None, None]}
df = pd.DataFrame (data)
print (df)
for source_column in...