Producto cartesiano de dos series, diferentes longitudes e índices

Dados dos series:

import pandas as pd
ser1 = pd.Series(data = [1,2,3], index=[1,2,3])
ser2 = pd.Series(data = [1,2,3,4,5], index = ['a','b','c','d','e'])

¿Cómo puedo multiplicar los dos para obtener esta salida deseada?

pd.DataFrame(
data = [[1,2,3],[2,4,6],[3,6,9],[4,8,12],[5,10,15]],
index = ser2.index,
columns = ser1.index,)

Mi enfoque hasta ahora ha sido construir un marco de datos temporal con índices y cols que coincidan con las dos series, y luego iterar sobre una de las dos series usando iteritems (). Siento que debería haber una forma más limpia de lograr esto.

Respuestas a la pregunta(2)

Su respuesta a la pregunta