First of all, checking the [QGIS API doc][1], I can see that the ranges method from the QgsGraduatedSymbolRendererV2 class returns a 

    const QgsRangeList &

probably meaning that you have little chance to modify its return value.

Additionally, when looping the way you do in Python, you cannot modify a list's values as explained [here][2].

=> twice impossible :)

Fortunately, the solution directly comes from the QgsGraduatedSymbolRendererV2 class thanks to :

    renderer.updateRangeUpperValue(iRangeIndex,value)
    renderer.updateRangeLowerValue(iRangeIndex,value)

The binding works correctly on my version (QGIS 2.8.2).
The final code would look like this:

    limit = 0
    step = 100
    for i, range in enumerate(renderer.ranges()):
        renderer.updateRangeLowerValue(i,limit)
        renderer.updateRangeUpperValue(i,limit+step)
        limit+=step


  [1]: http://qgis.org/api/classQgsGraduatedSymbolRendererV2.html
  [2]: https://stackoverflow.com/questions/19290762/cant-modify-list-elements-in-a-loop-python