I need to add a couple of updates to this bug report.

First, I have duplicated this bug, using both "emacs -nw -Q" and in commenting out my init.el file completely, essentially by doing the same thing.

Second, (and I consider this to be a very important datapoint, that I forgot to report, to my everlasting shame), I am using Emacs under screen.  Indeed, if I run "emacs -nw -Q ~/aoeu.py" without screen, my very brief tests don't run into a problem, but if I start a new screen instance, and open "emacs -nw -Q ~/aoeu.py", I can type

    def hello(world):

and I get

   def hello(w:rld)

so whether the problem is with Emacs/screen interaction, or is strictly a problem with screen, I do not know.

(For what it's worth, I've most recently been typing

   def hello(world):
   [TAB]testing = {"presidents" :
   [TAB]{ "jefferson" : "thomas",
   [TAB]"madison" : "james"}}
   [TAB]vesting = {"confederates" :
   [TAB]{"davis" : "jefferson"}}

in an attempt to test tabbing; the cursor can jump at any time through the process, although I haven't been keeping track of when that happens.  This is really just a "stream-of-consciousness" tab test.)