# -*- coding:utf-8 -*- mycortege = (('а','я',('е','э','ё')),'б','в','г','д','з',('и','й')) #1 def flatten(iterable): res = [] def loop(tpl): for i in tpl: if isinstance(i, tuple): loop(i) else: res.append(i) loop(iterable) return res print flatten(mycortege) #2 from compiler.ast import flatten as flt print flt(mycortege) #3 def fltn(iterable): for i in iterable: if isinstance(i, tuple): for x in fltn(i): yield x else: yield i print list(fltn(mycortege)) #4 cortege = ((u'а',u'я'),u'б',u'в',u'г',u'д',(u'е',u'э',u'ё'),u'з',(u'и',u'й')) for x in sum(map(list, cortege), []): print x #5 from operator import add cortege = ((u'а',u'я'),u'б',u'в',u'г',u'д',(u'е',u'э',u'ё'),u'з',(u'и',u'й')) for x in reduce(add, map(list, cortege)): print x