Рекурсивное извлечение пар из словаря

29. Рекурсивное извлечение пар из словаря

Условие задачи: Написать функцию, которая принимает на вход словарь и возвращает список всех пар “ключ-значение”. Если значение является вложенным словарём, функция должна рекурсивно извлекать ключи и значения из этого словаря.

Пример:

data = {'a': 1, 'b': {'c': 2, 'd': {'e': 3}}, 'f': 4}
>>>[('a', 1), ('c', 2), ('e', 3), ('f', 4)]