first, second = u"one,two,three", u"four,five,six"
for word_first in set(first_str.split(',')):
for word_second in set(second_str.split(',')):
...
Объясню, как в действительности работает цикл for. Python смотрит на последовательность, указанную после ключевого слова in. Если это простой контейнер (как список, кортеж, словарь, множество или определенный пользователем), Python преобразует его в итератор. Если этот объект уже является итератором, Python использует непосредственно его.
Затем Python многократно вызывает метод итератора next, связывает возвращаемое значение со счетчиком цикла (i в этом случае), и выполняет код тела цикла. Этот процесс повторяется снова и снова, пока не будет вызвано исключение StopIteration или выполнена инструкция break в теле цикла.
Цикл for может включать условие else (иначе), код которого будет выполнен после выхода из цикла, но не после выполнения инструкции break. Эта особенность предоставляет очень изящные решения. Условие else не всегда и не часто используется с циклом for, но может нам пригодиться. Иногда else удачно выражает логику, которая вам нужна.