This program: s = 'abcde' i = -1 for i in range (-1, -len(s), -1): print s[:i], i gives abcd -1 abc -2 ab -3 a -4 Why doesn't the first one have the e if -1 is the end of the list? In Dive Into Python it said that -1 was the end of the list. Thanks. it is from Chun's book, slightly modified by me to see the index.