for x, y in grouped(l, 2): print("%d + %d = %d" % (x, y, x + y))
В Python 2 вам следует импортировать izip в качестве замены встроенной в Python 3 zip() функции.
Вся заслуга Мартино за его ответ на мой вопрос, я обнаружил, что это очень эффективно, поскольку оно выполняет итерацию по списку только один раз и не создает никаких ненужных списков в процессе.
Примечание: Это не следует путать с pairwise рецептом из собственной itertools документации Python, который дает результат s -> (s0, s1), (s1, s2), (s2, s3), ..., как указал @lazyr в комментариях.
Небольшое дополнение для тех, кто хотел бы выполнить проверку типов с помощью mypy на Python 3: