Вот небольшая рекурсивная функция, которая преобразует списки в строки XML. Добавление поддержки отступов или ограничение глубины тривиально добавить, но я оставлю это для вас.
def xml(it, depth=1):
s = ''
for k, v in enumerate(it):
s += '<%d>' % (k+1)
if isinstance(v, list):
s += xml(v, depth+1)
else:
s += str(v)
s += "</%d>\n" % (k+1)
return s
Вот пример использования и вывода.
>>> data = ['Names', ['Boy names'], ['Girl Names', ['J-Names', ['Jill', 'Jen']]]]
>>> print xml(data)
'<1>Names</1>
<2><1>Boy names</1>
</2>
<3><1>Girl Names</1>
<2><1>J-Names</1>
<2><1>Jill</1>
<2>Jen</2>
</2>
</2>
</3>'