When slicing in python, omitting the end portion of the slice (ie the end in list[:end:]) results in end being defined as "the size of the string being sliced." *
However, this doesn't seem to hold true when using the step argument (the step in list[::step]) in a slice, at least when the step argument is -1.  A simple example:
>>> l = [1, 2, 3]
>>> l[::-1]
[3, 2, 1]
>>> l[:len(l):-1]
[]
This indicates that in the case of a step argument being passed, an omitted end value is not equivalent to explicitly passing the size of the object being sliced.
Perhaps this is just a failure of mine reading the documentation, but I'd like to understand why my above example seems to contradict the Python documentation about omitting end values in slices, and ideally where this different is documented.
* Slice indices have useful defaults; an omitted first index defaults to zero, an omitted second index defaults to the size of the string being sliced.