''.join(s[i+1]+s[i] for i in range(0, len(s), 2)) # 10.6 usec per loop
или
''.join(x+y for x, y in zip(s[1::2], s[::2])) # 10.3 usec per loop
или если строка может иметь нечетную длину:
''.join(x+y for x, y in itertools.izip_longest(s[1::2], s[::2], fillvalue=''))
Обратите внимание, что это не будет работать со старыми версиями Python (если я не ошибаюсь старше 2.5).
Тест был выполнен на python-2.7-8.fc14.1.x86_64 и процессоре Core 2 Duo 6400 с s='0123456789'*4
.