>>> l = ['lemon', 'orange', 'apple'] >>> for i in itertools.chain(*[map(lambda a: i + a, l) for i in l]): ... print i ... lemonlemon lemonorange lemonapple orangelemon orangeorange orangeapple applelemon appleorange appleapple >>>