You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python遍历4位小写字母密码匹配后无法终止问题求助

4位小写字母密码遍历程序问题修复

问题根源

  • 冗余外层循环导致无限重复遍历:外层while not done循环会在匹配成功后,重新初始化所有变量并再次启动四层for循环,永远无法真正停止。
  • 匹配成功后未终止嵌套循环:即使设置done=True,四层嵌套for循环仍会继续执行完所有26^4种组合,直到遍历到zzzz才会退出,随后又被外层while循环拉回重新执行。
  • 计数逻辑错误:目标密码aaaa是第一次尝试,但代码仅在不匹配时递增guess_num,导致匹配成功时显示的尝试次数为0,不符合实际尝试次数。

修正代码

import sys

my_password = "aaaa"
guess_num = 0
# 复用同一个字母列表,无需重复定义
lowercase_letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']

for a in lowercase_letters:
    for b in lowercase_letters:
        for c in lowercase_letters:
            for d in lowercase_letters:
                guess_num += 1
                current_guess = a + b + c + d
                print(f"当前尝试:{current_guess},累计尝试次数:{guess_num}")
                if current_guess == my_password:
                    print(f"找到目标密码!共尝试 {guess_num} 次")
                    # 直接终止程序,停止后续遍历
                    sys.exit()

修正说明

  1. 移除无意义的外层while循环,避免重复遍历所有组合
  2. 复用单个小写字母列表,减少冗余代码
  3. 调整计数逻辑,每次尝试先递增计数,确保尝试次数准确
  4. 匹配成功后使用sys.exit()直接终止程序,无需继续遍历剩余组合

内容的提问来源于stack exchange,提问作者BroWhat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 05:20:31