You can use a decorator to modify the function object once, by assigning initial values to some new attributes. Then use these attributes as you would use static variables in other languages.
Here is the result:
(1, 1, [1])
(3, 2, [1, 2])
(6, 6, [1, 2, 3])
(10, 24, [1, 2, 3, 4])
It works fine in Python 2.6 and 3.0.
Hope this helps.