For a demonstration I want to crack an excel file (named 'xl') password. I use the following code but (1) it fails to open excel and (2) it does not stop running when the password is cracked. import itertools import string from win32com.client import Dispatch file = input('Path: ') chars = string.ascii_lowercase + string.digits for password_length in range(1, 2): for password in itertools.product(chars, repeat=password_length): password = ''.join(password) print ('Testing password: '+ password) instance = Dispatch ('Excel.Application') try: instance.Workbooks.Open(file, False, True, None, password) print ('Password Cracked: ' + password) #break except: pass I set the excel password as 'p' and the code just runs through 1 character combinations for simplicity. Moreover, when you run the code it requires as input the path of the excel file. I can't figure out my mistake and I would appreciate some help. Also if doing this for a word document is easier please let me know. Continue reading...