Лучший эквивалент этого сумасшедшего вложенного python for loop

for a in map:
    for b in map[a]:
        for c in map[b]:
            for d in map[c]:
                for e in map[d]:
                    print a+b+c+d+e

Приведенный выше код используется для создания всех путей определенной длины в графе. карта [a] представляет собой точки, до которых можно добраться из точки a.

Как я могу изменить его, чтобы имитировать произвольное количество циклов?

Это похоже на декартово произведение (itertools.product), где на каждой итерации ваш выбор для следующего элемента ограничен элементами на карте [current_point].

8
задан Babak 18 January 2012 в 06:58
поделиться