x = np.array([[3, 20, 11], [6, 2, 7], [18, 2, 17], [11, 12, 19], [7, 20, 6]])
df = pd.DataFrame(x, columns=['a', 'b', 'c'])
x_t = PatsyTransformer('a:b + a:c + b:c', return_type='dataframe'
    ).fit_transform(df)
How to generate many interaction terms in Pandas?