This is the best answer, but the original version of btcrecover hasn't been updated in 3 years. There is a fork with ongoing active development, wider wallet support, new features, and better optimization, available here:
https://github.com/3rdIteration/btcrecoverFor recovering a password to wallet file, follow the instructions here:
https://github.com/gurnec/btcrecover/blob/master/TUTORIAL.md#btcrecover-tutorialThese instructions will talk you through building a tokens.txt file with the words in the password you do remember, any numbers, punctuation, substitutions, typos, etc., which the program will then take, generate all possible combinations, and try them automatically on your wallet file.