@Questions1234

Как ускорить алгоритм перебора символов циклом For на Python?

Добрый день. Имеется алгоритм:
letters = list('abcdefghijklmnopqrstuvwxyz')
numbers = list('1234567890')
for a in letters:
    for b in letters:
        for c in letters:
            for d in letters:
                for e in letters:
                    for f in numbers:
                        for g in numbers:
                            print(a,b,c,d,e,f,g)

Скажите, каким образом можно ускорить этот алгоритм, чтобы перебор работал в разы быстрее?
  • Вопрос задан
  • 1193 просмотра
Пригласить эксперта
Ответы на вопрос 3
@Gadd
Можно попробовать использовать itertools.combinations или itertools.permutations, если я правильно понимаю задачу.
Ответ написан
Комментировать
15432
@15432
Системный программист ^_^
Убрать print - это самый медленный элемент в вашем коде. На печать каждой строки на экране тратится просто уйма времени. Выводите результат в файл, например.
Ответ написан
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
При первом проходе всех циклов по одному разу, составить карту вложенности строк и, после выхода (break) из последнего цикла, использовать рекурсивную конкатенацию сразу целыми строками.

Фактически, это превращение вертикального шардирования в горизонтальное: уменьшаем время работы кода, но увеличиваем используемый объём оперативной памяти.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы