I would have preferred this signature to start with, but it's easy to wrap.
Indeed, but a default value for the first argument requires a default value for all arguments. It's a syntax error, but I agree a "range-like" signature like that would be better.

My reference scan implementation (that's how I thought itertools.accumulate should be):
https://github.com/danilobellini/pyscanprev/blob/v0.1.0/pyscanprev.py#L171

A new "functools.scan" with a signature like the one from the link above would be nice, but it would overlap with itertools.accumulate in some sense. The advantages would be:

1 - The scan signature and the functools.reduce signature are the same (the function as the first parameter, like map/filter)
2 - The module, functools, is the same that has the reduce function

--
Danilo J. S. Bellini
---------------
"It is not our business to set up prohibitions, but to arrive at conventions." (R. Carnap)