Note an important speed-up in concatenating strings: use cStringIO: a=cStringIO.StringIO() for i in range(10000): a.write('h') a=a.getvalue() rather then: a='' for i in range(10000): a=a+'h'