This is just python buffering stdout. This answer has some more info.
You can flush it like this:
import sys
from __future__ import print_function
import time
x = 0
while x < 5:
print(x, end='')
x += 1
sys.stdout.flush()
time.sleep(1)
Alternatively start python python -u
and it won't be buffered.