2013-10-02 39 views
0

首先,我希望這是允許的。我失去了一個非常重要的個人文件的密碼,我試圖強制它使我可以恢復它,但是,當試圖找到代碼使它工作時,我發現了這一個,但它是半分裂的。它會找到密碼,如果它是「fg」,但不是如果它是「gf」,任何人都可以告訴我爲什麼以及如何解決它?密碼生成器無法正常工作

import traceback 
from itertools import combinations 

lookingfor = "fg" 

try: 
letritas = ["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", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"] 
for c in combinations(letritas, 2): 
    combinacion1 = str(c).replace("', '", "") 
    combinacion2 = combinacion1.replace("('", "") 
    combinacion3 = combinacion2.replace("')", "") 
    print("Trying: ["+combinacion3+"]") 
    if lookingfor == combinacion3: 
     print("Found on: "+combinacion3) 
     break 

假設的作品,並創建所有的組合,每次我得到真正的代碼錯了,我得到了OSERROR,我不知道是否有設置,除了OSERROR一個辦法:忽略錯誤並繼續循環直到找到合適的人。

編輯:這是蟒蛇3.3.2

+1

你想排列,而不是組合。 – geoffspear

+0

排列,正確。現在它運作完美,併產生所有可能的答案:D。現在的第2部分:我如何讓循環繼續嘗試不同的密碼,如果我得到OSError? – Saelyth

回答

0

排列組合的伎倆,我找到了一種方法重複排除嘗試一個代碼,這是

if not combinacion3 in comprobadas: 
    print("Trying: ["+combinacion3+"]") 
    comprobadas.append(combinacion3) 

這樣,它存儲了所有嘗試並且在下次嘗試時不會嘗試它。