title: Why does [-1:-1:-1] not work for reversing a string?
body: <p>Maybe someone can explain why a particular slice operation to reverse
  a string doesn't work. There must be something about slices I don't
  understand. Basic operation: s[start:end:step]</p>
  
  <p>Given</p>
  
  <pre><code>s='abcd'
  </code></pre>
  
  <p>to reverse this string I can do using default values</p>
  
  <pre><code>s[::-1]
  </code></pre>
  
  <p>or </p>
  
  <pre><code>s[-1::-1]
  </code></pre>
  
  <p>Those are fine, but why doesn't</p>
  
  <pre><code>s[-1:-1:-1]
  </code></pre>
  
  <p>work and give me the whole string reversed? It should start at with
  the last character in the string at (-1), and the stepsize is -1. It should run
  down to one before -1 i.e., index 0. Instead I get ''. </p>
  
  <pre><code>for i in xrange(3, -2, -1):
      print 's[-1:%d:-1] =&gt; ' %i,
      print s[-1:i:-1]
  </code></pre>
  
  <p>yields:</p>
  
  <pre><code>s[-1:3:-1] =&gt;     # didn't expect any output
  s[-1:2:-1] =&gt;  d
  s[-1:1:-1] =&gt;  dc
  s[-1:0:-1] =&gt;  dcb
  s[-1:-1:-1] =&gt;    # shouldn't this be 'dcba'?
  </code></pre>
  
  <p>what am I missing here? </p>
  
  <p>(I did see a lot of posting on reversing strings, but if this particular item was explained somewhere I missed it)</p>