from itertools import izip_longest
''.join(['%s%s' % (x ,y)\
for x,y in izip_longest("12345","6789XYZ", fillvalue='')])
## Was: ''.join(['%s%s' % (x if x else '',y if y else '') \
## for x,y in izip_longest("12345","6789XYZ")])
Чтобы немного разбить это:
- встроенная функция zip () проникает только в самую короткую из двух последовательностей; поэтому мы используем izip_longest () из itertools стандартного библиотечного модуля
- izip_longest () дополняет сгенерированные последовательности с помощью Нет по умолчанию; поэтому мы добавляем fillvalue = '' необязательный аргумент (ключевое слово)
- Полученные подстроки просто объединяются, чтобы сформировать ваши результаты.