import random from tkinter import * def generate(x, y): # x = characters to generate # y = generate all uppers, all lowers, anything if y == 'Upper': start, stop = 65, 91 elif y == 'Lower': start, stop = 97, 123 else: start, stop = 33, 127 a = [] while x: # for x times, generate a ranmdom number, convert it into # a character and add it to list 'a' a.append(chr(random.randrange(start, stop))) x = x - 1 # when x is 0, convert the list to a string d = ''.join(str(v) for v in a) return d b = 1 while b: ans = 0 rand = Tk() amnt = IntVar() rand.wm_attributes('-topmost', 1) rand.wm_title("Pwd Gen") randtext = Text(rand, width=23, height=1) randtext.pack() randtext.insert("1.0", "Character Amount:") randtext.config(state=DISABLED) charamnt = Entry(rand, textvariable=amnt) charamnt.pack() charamnt.delete(0, END) charamnt.insert(0, "10") randans = Text(rand, width=23, height=2) randans.pack() randans.insert("1.0", ans) randans.config(state=DISABLED) incl = StringVar(rand) incl.set("Upper") inc = OptionMenu(rand, incl, "Upper", "Lower", "All") inc.pack() def button(): genamnt = amnt.get() include = incl.get() ans = generate(genamnt, include) randans.config(state=NORMAL) randans.delete("1.0", END) randans.insert("1.0", ans) randans.config(state=DISABLED) return def randquit(): global b b = 0 rand.destroy() button = Button(rand, text="Generate", command=button) button.pack() button_quit = Button(rand, text="Quit", command=randquit) button_quit.pack() mainloop()