在我当前显示所有可能组合的python程序中,它没有显示10的倍数(10、20、30、40等)。我不明白为什么,我正在使用itertools库,不知道是否有什么东西可以做到这一点?我已经在网上找过了,但我没有找到任何类似的东西,所以可能与我安装它有关?无论如何,这是代码。
import itertools
from pynput.keyboard import Controller
import time
keyboard = Controller()
loop = True
a = 1
input("Welcome to the Password Possibilities Test")
input("This test will tell you how many possible")
input("combinations a password can have")
input("*all answers must start with an uppercase*")
num_length = 0
alpha_length = 0
sym_length = 0
num = input("So lets start does your password have numbers?\n")
alpha = input("Does it have letters?\n")
sym = input("Does it have symbols?\n")
long = input("Do you know how long the password is?\n")
possibilities = []
if long == "Yes":
length = input("How long is the password?\n")
elif long == "No":
print("Then we will go off of the average password length which is 8\n")
length = 8
if num == "Yes":
num_length = 10
possibilities.append(0)
possibilities.append(1)
possibilities.append(2)
possibilities.append(3)
possibilities.append(4)
possibilities.append(5)
possibilities.append(6)
possibilities.append(7)
possibilities.append(8)
possibilities.append(9)
else:
num_length = 0
if alpha == "Yes":
alpha_length = 52
possibilities.append("a")
possibilities.append("b")
possibilities.append("c")
possibilities.append("d")
possibilities.append("e")
possibilities.append("f")
possibilities.append("g")
possibilities.append("h")
possibilities.append("i")
possibilities.append("j")
possibilities.append("k")
possibilities.append("l")
possibilities.append("m")
possibilities.append("n")
possibilities.append("o")
possibilities.append("p")
possibilities.append("q")
possibilities.append("r")
possibilities.append("s")
possibilities.append("t")
possibilities.append("u")
possibilities.append("v")
possibilities.append("w")
possibilities.append("x")
possibilities.append("y")
possibilities.append("z")
possibilities.append("A")
possibilities.append("B")
possibilities.append("C")
possibilities.append("D")
possibilities.append("E")
possibilities.append("F")
possibilities.append("G")
possibilities.append("H")
possibilities.append("I")
possibilities.append("J")
possibilities.append("K")
possibilities.append("L")
possibilities.append("M")
possibilities.append("N")
possibilities.append("O")
possibilities.append("P")
possibilities.append("Q")
possibilities.append("R")
possibilities.append("S")
possibilities.append("T")
possibilities.append("U")
possibilities.append("V")
possibilities.append("W")
possibilities.append("X")
possibilities.append("Y")
possibilities.append("Z")
else:
alpha_length = 0
if sym == "Yes":
sym_length = 32
possibilities.append("!")
possibilities.append("@")
possibilities.append("#")
possibilities.append("$")
possibilities.append("%")
possibilities.append("^")
possibilities.append("&")
possibilities.append("*")
possibilities.append("(")
possibilities.append(")")
possibilities.append("_")
possibilities.append("+")
possibilities.append("{")
possibilities.append("}")
possibilities.append("|")
possibilities.append(":")
possibilities.append("\\")
possibilities.append("?")
possibilities.append(">")
possibilities.append("<")
possibilities.append("~")
possibilities.append("`")
possibilities.append("[")
possibilities.append("]")
possibilities.append("\"")
possibilities.append(";")
possibilities.append("'")
possibilities.append("/")
possibilities.append(".")
possibilities.append(",")
possibilities.append("`")
else:
sym_length = 0
num_length = int(num_length)
alpha_length = int(alpha_length)
sym_length = int(sym_length)
length = int(length)
calc = num_length + alpha_length + sym_length
final = pow(calc,length)
print("This password has ",final, "possibilities")
input("Click the ENTER key to view all of the combonations")
time.sleep(2)
for i in itertools.combinations_with_replacement(possibilities,length):
print(*i, sep='')
print("This password has ",final, "possibilities")
exit = input("Would you like to exit?\n")
if exit == "Yes":
pass
elif exit == "No":
while loop == True:
a = 1发布于 2021-06-25 23:08:57
当你想展示所有可能的组合时,你指的是关于重复排列的数学概念。在python的itertools库中,只有排列,就像数学中的排列一样,没有重复的排列。在python中,您可以使用itertools.product作为交换。下面是我附带的完整的功能代码:
import itertools
from pynput.keyboard import Controller
import time
keyboard = Controller()
loop = True
a = 1
input("Welcome to the Password Possibilities Test")
input("This test will tell you how many possible")
input("combinations a password can have")
input("*all answers must start with an uppercase*")
num_length = 0
alpha_length = 0
sym_length = 0
num = input("So lets start does your password have numbers?\n")
alpha = input("Does it have letters?\n")
sym = input("Does it have symbols?\n")
long = input("Do you know how long the password is?\n")
possibilities = []
if long == "Yes":
length = input("How long is the password?\n")
elif long == "No":
print("Then we will go off of the average password length which is 8\n")
length = 8
if num == "Yes":
num_length = 10
possibilities.append("0")
possibilities.append("1")
possibilities.append("2")
possibilities.append("3")
possibilities.append("4")
possibilities.append("5")
possibilities.append("6")
possibilities.append("7")
possibilities.append("8")
possibilities.append("9")
else:
num_length = 0
if alpha == "Yes":
alpha_length = 52
possibilities.append("a")
possibilities.append("b")
possibilities.append("c")
possibilities.append("d")
possibilities.append("e")
possibilities.append("f")
possibilities.append("g")
possibilities.append("h")
possibilities.append("i")
possibilities.append("j")
possibilities.append("k")
possibilities.append("l")
possibilities.append("m")
possibilities.append("n")
possibilities.append("o")
possibilities.append("p")
possibilities.append("q")
possibilities.append("r")
possibilities.append("s")
possibilities.append("t")
possibilities.append("u")
possibilities.append("v")
possibilities.append("w")
possibilities.append("x")
possibilities.append("y")
possibilities.append("z")
possibilities.append("A")
possibilities.append("B")
possibilities.append("C")
possibilities.append("D")
possibilities.append("E")
possibilities.append("F")
possibilities.append("G")
possibilities.append("H")
possibilities.append("I")
possibilities.append("J")
possibilities.append("K")
possibilities.append("L")
possibilities.append("M")
possibilities.append("N")
possibilities.append("O")
possibilities.append("P")
possibilities.append("Q")
possibilities.append("R")
possibilities.append("S")
possibilities.append("T")
possibilities.append("U")
possibilities.append("V")
possibilities.append("W")
possibilities.append("X")
possibilities.append("Y")
possibilities.append("Z")
else:
alpha_length = 0
if sym == "Yes":
sym_length = 32
possibilities.append("!")
possibilities.append("@")
possibilities.append("#")
possibilities.append("$")
possibilities.append("%")
possibilities.append("^")
possibilities.append("&")
possibilities.append("*")
possibilities.append("(")
possibilities.append(")")
possibilities.append("_")
possibilities.append("+")
possibilities.append("{")
possibilities.append("}")
possibilities.append("|")
possibilities.append(":")
possibilities.append("\\")
possibilities.append("?")
possibilities.append(">")
possibilities.append("<")
possibilities.append("~")
possibilities.append("`")
possibilities.append("[")
possibilities.append("]")
possibilities.append("\"")
possibilities.append(";")
possibilities.append("'")
possibilities.append("/")
possibilities.append(".")
possibilities.append(",")
possibilities.append("`")
else:
sym_length = 0
num_length = int(num_length)
alpha_length = int(alpha_length)
sym_length = int(sym_length)
length = int(length)
calc = num_length + alpha_length + sym_length
print(calc)
final = pow(calc,length)
print("This password has ",final, "possibilities")
input("Click the ENTER key to view all of the combonations")
time.sleep(2)
for i in itertools.product(possibilities, repeat = length):
print(*i, sep='')
print("This password has ",final, "possibilities")
exit = input("Would you like to exit?\n")
if exit == "Yes":
pass
elif exit == "No":
while loop == True:
a = 1https://stackoverflow.com/questions/64486907
复制相似问题