I was practising for educational purpose with simply password cracker. I know that I could use itertool but in my case when I'm learning I would miss facing problems and learning on them and indeed I've met one which is not giving me a peace.
What I want to learn is if I need get for example four combinations, so how to get in a loop first letter 'a',then another step'a' and again 'a' and 'a', to have 'aaaa' later on'abaa' etc. So I wrote that: ------------------------------------------ import string passe = 'zulu' mylist = [] #letters = string.ascii_lowercase letters = ['a','b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'r', 's', 't', 'u', 'w', 'q', 'y', 'z'] mineset= set() for a in letters: for b in letters: for c in letters: for d in letters: s = a + b + c + b mylist.append(s) mineset=set(mylist) k = sorted(mineset) print(k) for i in k: if i == passe: print('got it: ', i ) print(passe in k) -------------------------------------- It works in someway but the problems are: Not all combination are made, I change password to: 'pass' and that combination is not in results. Another thing is, I had to made a set from list because combinations were repeated. And finally, I was struglling with making it in without creating four loops for four letters, something like that: To try to solve those I went with that approach: ------------- letters = ['a','b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'r', 's', 't', 'u', 'w', 'q', 'y', 'z'] password = 'pass' combin = '' lista=[] for x in range(4): for y in letters: combin +=y lista.append(combin) combin='' mineset=set(lista) print(mineset) for i in lista: if i == password: print('pass:', i) ------------------- But the results are disspainting: {'abc', 'a', 'ab', 'abcd', 'abcde'} I was seating on it for a long day but can't even closely achieve similar effect to 4 loops in previous code. -- Thanks -- https://mail.python.org/mailman/listinfo/python-list