Мы хотим zip
объединить списки. Но если списки не одинаковой длины, нам нужно заполнить их. itertools.zip_longest
помогает нам в этом:
from itertools import zip_longest
xss = [['A', 'B', 'C'], ['1', '2', '3'], ['Z', 'X']]
result = ["".join(xs) for xs in zip_longest(*xss, fillvalue="")]
Что дает:
>>> result
['A1Z', 'B2X', 'C3']