This way, you can simply do a search in each file looking for a known address:
find . -name "keys_*.txt" | xargs grep 1BdvycQtKNAt89r6nUPtekb45NsR1YTy3o
gives:
./keys_7.txt:1BdvycQtKNAt89r6nUPtekb45NsR1YTy3o
It isn't anywhere near as polished or user-friendly as the btcrecover and seedrecover scripts... and you'd need to edit the source code to set the derivation path if you want to change it... and it'll probably take quite a while to check all the combinations of 2 missing words and output hundreds of files... but it *should* work.
Source code is here: https://pastebin.com/3veBTLFg
You run it by passing the "known" seed words... and use an "x" for missing word(s):
python find_missing_seed_word.py sketch hockey elbow property symptom peanut genre bubble popular inherit x x
python find_missing_seed_word.py sketch hockey elbow x symptom peanut genre bubble popular inherit x adult
NOTES:
- This script will NOT work if you don't know the position of the missing words
- There will probably be some Python library dependencies (like "bitcoin") that you might need to install... use pip
- if anyone wants to use this with a derivation path (it is currently set to m/44'/145'/0' for BCH)... you need to change the lines 466-469:
#m/44'/145'/0'/0 - Receive
xprvReceive = bitcoin.bip32_ckd(bitcoin.bip32_ckd(bitcoin.bip32_ckd(bitcoin.bip32_ckd(xprv, 44 + 2**31), 145 + 2**31), 2**31), 0)
#m/44'/145'/0'/1 - Change
xprvChange = bitcoin.bip32_ckd(bitcoin.bip32_ckd(bitcoin.bip32_ckd(bitcoin.bip32_ckd(xprv, 44 + 2**31), 145 + 2**31), 2**31), 1)
For instance, if you wanted to use BTC (m/44'/0'/0') you would need to change to:
xprvReceive = bitcoin.bip32_ckd(bitcoin.bip32_ckd(bitcoin.bip32_ckd(bitcoin.bip32_ckd(xprv, 44 + 2**31), 2**31), 2**31), 0)
#m/44'/0'/0'/1 - Change
xprvChange = bitcoin.bip32_ckd(bitcoin.bip32_ckd(bitcoin.bip32_ckd(bitcoin.bip32_ckd(xprv, 44 + 2**31), 2**31), 2**31), 1)