Скрещенное произведение множеств с использованием рекурсии
Я написал следующую рекурсивную процедуру для вычисления перекрестного произведения двух множеств.
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.