According to what i have read - it is always better to assume natural numbers beginning from 01 onward (for the gmat) unless otherwise stated. Assuming that to be the case we can sub divide the problem into :
A) Four digit Numbers : _ _ _ _ , The ones place - hundreds place can be filled by any one of the 8 numbers given (the problem speaks nothing about NOT REPEATING the numbers so we have to assume that they can be repeated) the thousands place can be filled by any number except "0".. This gives us 7 x 8 x 8 x 8 = 3584
B) Three digit Numbers : _ _ _ , The ones place - tens Place can be filled by any one of the 8 numbers given ( the problem speaks nothing about NOT REPEATING the numbers so we have to assume that they can be repeated) , the hundreds place can be filled by only 7 of the given 8 numbers (If we use "0" we will end up with a two digit number ). This gives us 7 x 8 x 8 = 448
C) Two digit numbers : _ _ , The ones place can be filled up by any one of the 8 numbers given , and the tens place by any 7 of the 8 ... This gives us 7 x 8 = 56
D) Assuming that zero is not a natural number , we have seven different possibilities for the one digit numbers . 7
Add A + B + C + D , This gives us 3584 + 448 + 56 + 7 = 4095 (D)
Now let us assume that ZERO is a NATURAL number (as some mathematicians do) ... A thru C is not effected by this assumption as the resultant would have meant that a four number digit with a zero at the beginning would have effectively made it a three digit no. , and a 0 to begin a three digit number would make it a two digit number etc ... The only difference including ZERO to be a natural number would have made for D , in that it would have given it 8 possibilities instead of 7 ... Which would have added 1 to our total making it 4096. Simply by looking at the answer choices we can determine that the test maker wanted natural numbers to begin from 1 and not from 0 ( as per the answer choices) ..
You have earned this kudos, thank you for a comprehensive explanation.