Приведенный ниже код должен достичь того, что вам нужно
import itertools
import operator
l1 = [1, 2, 3]
l2 = [1, 2, 3, 4]
list(itertools.starmap(operator.mul, itertools.zip_longest(l1, l2, fillvalue=1)))
# result [1, 3, 9, 4]
Пояснение
zip_longest
сожмет и заполнит пропущенные значения из более короткого списка:
itertools.zip_longest(l1, l2, fillvalue=1)
[(1, 1), (2, 2), (3, 3), (1, 4)]
starmap
будет применять оператор умножения к каждой целой паре