<p>You have 21 words, out of 24. Therefore, 21 of 24 slots are taken, but not necessarily correctly.</p>
<p>There are 2048 possibilities for each word.</p>
<p>The first word can go into one of any 24 positions, therefore 2048*24. The next in any of 23, and the last in any of 22.</p>
<p>This gives you a total of <code>2048 * 24 * 2048 * 23 * 2048 * 22</code>, or <code>2048^3 * 24 * 34 * 22</code>.</p>
<p>That's a total of 154,206,505,795,584 possible combinations. While not impossible to compute, at a reasonable rate of 100,000 attempts per second, you'll be able to try them all in just under 50 years.</p>
<p>This task is highly parallelizable, so you could likely cut that down significantly if you can obtain enough hardware. Even simply knowing the locations of the missing words cuts down the brute force time at 100k guesses a second to just under a day.</p>

CC BY-SA 4.0
2020-07-16T13:48:38.100Z
ok..so here comes the next problem..when im running this program for 2 missing random words its total combinations are 1157627904...

so it works

2048*24*2048*23 = 2315255808

but then looks like it divides them by 2

hence giving 1157627904 total combinations

could it be because once a word is found it deducts the process for teh next words?
Gianni
CC BY-SA 4.0
2020-07-16T13:55:15.957Z
You won't know if one word is found until you find all the words, assuming you have an address or some key you can validate the seed against. Your script might be wrong, or computing some other set of combinations
Raghav Sood
CC BY-SA 4.0
2020-07-16T14:03:36.143Z
im using BTC recover

inserting address correctly

then inserting my 21 words and added anotehr extra word for a total of 22 words

as i start BTC recover it shows

seed sentence was too short, inserting 2 words into each guess

phase 1/1: up to 2 mistakes, 2 of which can be an entirely different seed word

total seeds tried 1157627904
Gianni
CC BY-SA 4.0
2020-07-16T14:05:00.340Z
also when i tried with 3 missing words in 3 definite poistions like 19,20,21 it worked correctly 2048^3
Gianni
CC BY-SA 4.0
2020-07-16T14:06:22.057Z
so the scripts runs well...but i cant just determine the number of total combinations for the 3 random missing words
Gianni
CC BY-SA 4.0
2020-07-16T14:31:08.160Z
My best guess is that it is either attempting to split the word into two halves over multiple CPUs/devices, or it does some kind of optimization that allows it to cut down on attempts with a high probability of not missing the correct solution - hard to say without spending time looking at the code
Raghav Sood
CC BY-SA 4.0
2020-07-16T15:57:09.090Z
or could it be possible that since it works first x 24 then x 23 it divides by 2 as its running the process twice?
Gianni
CC BY-SA 4.0
2020-07-17T05:52:00.333Z
@RaghavSood Since the only relationship between the words is the checksum and the SHA256 hash used in creation of it can not be predicted, there is no way to skip any checks. So the entire 2315255808 permutations must be checked to find the valid ones according to checksum (usually ~6%) then derive child keys for those.
Coding Enthusiast
CC BY-SA 4.0
2020-07-16T13:37:02.760Z
2020-07-16T13:37:02.760Z
Raghav Sood
<p>I have a combination of 24 words made from 2048 words. I have 21 of these words known and in order. I am missing 3 words that can be placed in any slot from the 24. How can I work out the number of outcomes that I need to try to find these 3 missing words and where they are in the code?</p>

<wallet-recovery>
so how many possibilties for 3 random missing words?
Gianni
# so how many possibilties for 3 random missing words?

(Asked by: username_0 on 2020-07-16)

I have a combination of 24 words made from 2048 words. I have 21 of these words known and in order. I am missing 3 words that can be placed in any slot from the 24. How can I work out the number of outcomes that I need to try to find these 3 missing words and where they are in the code?

**Tags:** wallet-recovery


---

## 1 answers

### Answer by username_1 on 2020-07-16. Score: 1

You have 21 words, out of 24. Therefore, 21 of 24 slots are taken, but not necessarily correctly.

There are 2048 possibilities for each word.

The first word can go into one of any 24 positions, therefore 2048\*24. The next in any of 23, and the last in any of 22.

This gives you a total of `2048 * 24 * 2048 * 23 * 2048 * 22`, or `2048^3 * 24 * 34 * 22`.

That's a total of 154,206,505,795,584 possible combinations. While not impossible to compute, at a reasonable rate of 100,000 attempts per second, you'll be able to try them all in just under 50 years.

This task is highly parallelizable, so you could likely cut that down significantly if you can obtain enough hardware. Even simply knowing the locations of the missing words cuts down the brute force time at 100k guesses a second to just under a day.

> **Comments:**
> **username_0**: ok..so here comes the next problem..when im running this program for 2 missing random words its total combinations are 1157627904...  so it works  2048*24*2048*23 = 2315255808  but then looks like it divides them by 2  hence giving 1157627904 total combinations  could it be because once a word is found it deducts the process for teh next words?  
> **username_1**: You won't know if one word is found until you find all the words, assuming you have an address or some key you can validate the seed against. Your script might be wrong, or computing some other set of combinations  
> **username_0**: im using BTC recover  inserting address correctly  then inserting my 21 words and added anotehr extra word for a total of 22 words  as i start BTC recover it shows  seed sentence was too short, inserting 2 words into each guess  phase 1/1: up to 2 mistakes, 2 of which can be an entirely different seed word  total seeds tried 1157627904  
> **username_0**: also when i tried with 3 missing words in 3 definite poistions like 19,20,21 it worked correctly 2048^3  
> **username_0**: so the scripts runs well...but i cant just determine the number of total combinations for the 3 random missing words  
> **username_1**: My best guess is that it is either attempting to split the word into two halves over multiple CPUs/devices, or it does some kind of optimization that allows it to cut down on attempts with a high probability of not missing the correct solution - hard to say without spending time looking at the code  
> **username_0**: or could it be possible that since it works first x 24 then x 23 it divides by 2 as its running the process twice?  
> **username_2**: @username_1 Since the only relationship between the words is the checksum and the SHA256 hash used in creation of it can not be predicted, there is no way to skip any checks. So the entire 2315255808 permutations must be checked to find the valid ones according to checksum (usually ~6%) then derive child keys for those.  

---

