@Yrets169

Как выйти из цикла при совпадении?

Добрый день, пытаюсь создать простой перебор символов с шагом к примеру от 1 и до 4
Если пароль 4 символа то все работает как нужно, в цикле находится совпадение и прерывается его действие.
Но если пароль меньше 4 символов, то при совпадении цикл не прекращается и работает дальше.

sCharacters = "abcdefghijklmnopqrstuvwxyz0123456789"
for iCombinationLength in range(1, 4+1):
    for aCombination in itertools.product(sCharacters, repeat=iCombinationLength):
        guess_password = ''.join(aCombination)
        if (guess_password == "123"):
            print("Your password is : " + "".join(guess_password))
            break


Как прекращать работу цикла при совпадении пароля если он меньше чем 4 символа?
  • Вопрос задан
  • 101 просмотр
Решения вопроса 1
@Yrets169 Автор вопроса
По рекомендации AWEme вынес внутренний цикл в функцию с последующим ее завершением при совпадении пароля
(полностью рабочий вариант)
import itertools
sCharacters = "abcdefghijklmnopqrstuvwxyz0123456789"
def brute_pass():
    for aCombination in itertools.product(sCharacters, repeat=iCombinationLength):
        guess_password = ''.join(aCombination)
        print(''.join(aCombination))
        if (guess_password == "124"):
             print("Your password is : " + "".join(guess_password))
             return False

for iCombinationLength in range(1, 4+1):
    if brute_pass() ==False:
        break
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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