multiplier возвращает список return [...] из 4 элементов, каждый элемент которой - лямбда-функция
>>> multiplier()
[<function multiplier.<locals>.<listcomp>.<lambda> at 0x10aa5b620>, <function multiplier.<locals>.<listcomp>.<lambda> at 0x10aa5b510>, <function multiplier.<locals>.<listcomp>.<lambda> at 0x10aa5b598>, <function multiplier.<locals>.<listcomp>.<lambda> at 0x10aa5b840>]
Мы по нему итерируемся, в цикле присваивая параметру m эти лямбда-функции:
>>> m = lambda x, i=0: i*x
>>> m(2)
0
>>> m = lambda x, i=1: i*x
>>> m(2)
2
...
лямбда осуществляет замыкание переменной i
и передаем недостающий параметр x в лямбду