Скрещенное произведение множеств с использованием рекурсии

Я написал следующую рекурсивную процедуру для вычисления перекрестного произведения двух множеств.

def combine(input1,input2,output):
    if len(input2)==0:
        return output
    else:
       for num in input1:
           output.append((num,input2[0]))
       combine(input1,input2[1:],output)

input1=[1 2 5]
input2=[2 3]
output=[(1,2), (1,3), (2,2),(2,3),(5,2),(5,3)]

Можно ли сделать рекурсию лучше, например, удалить цикл в else и попытаться выполнить в той же функции. Я смотрю на разные способы решения проблемы.

Редактировать: не искать решение с чем-то встроенным. Ищете, как я могу сделать рекурсию по-другому, и не использовать itertools.product.

Ответы на вопрос(2)

Ваш ответ на вопрос