Interesting problem. For starters I wrote a program to verify the numbers you mentioned. The computer constructs a random [itex]p[/itex]-digit string to represent a serial number, then picks [itex]m[/itex] random digit characters. It then checks whether all of the [itex]m[/itex] digits picked occur at least once in the string. I ran this through a loop [itex]100[/itex] [itex]000[/itex] [itex]000[/itex] times, counting the number of times all [itex]m[/itex] were in the string, and then returning the count. This way the significant digits of the count would be the significant digits of the proportion. The sample proportions I observed for [itex]n=10[/itex], [itex]p=3[/itex] were consistently within [itex].0001[/itex] of [itex].271[/itex], [itex].054[/itex], and [itex].006[/itex] for [itex]m=1[/itex], [itex]2[/itex], and [itex]3[/itex], respectively. When I upped the string length to [itex]8[/itex], the computer took longer to get through [itex]100[/itex] [itex]000[/itex] [itex]000[/itex] plays, but when it finally came back with an answer, it was in the ballpark of [itex]15[/itex] [itex]427[/itex] [itex]000[/itex], which corresponds closely with the figure you mentioned.
I then realized I could get the computer to count all of the [itex]8[/itex]-digit strings that have three distinct given digits, so I wrote another program that runs through a loop for every integer from [itex]0[/itex] to [itex]n[/itex][itex]p[/itex] [itex]-[/itex] [itex]1[/itex]. Every time through the loop, it constructs an equivalent [itex]p[/itex]-digit string to represent the integer of the current pass by prepending [itex]0[/itex]s to the integer until it is [itex]p[/itex] digits in length. It then checks the resulting string for three distinct digit characters, the same three every time through the loop, and if on a given pass all three are present, it increments the count. After [itex]n[/itex][itex]p[/itex] string representations corresponding to integers [itex]0[/itex] to [itex]n[/itex][itex]p[/itex] [itex]-[/itex] [itex]1[/itex] have been checked, it returns the count. When I ran this program with [itex]n=10[/itex], [itex]p=8[/itex], and [itex]m=3[/itex], it returned [itex]15[/itex] [itex]426[/itex] [itex]684[/itex], which, expressed as a proportion out of the [itex]100[/itex] [itex]000[/itex] [itex]000[/itex] total possible [itex]8[/itex]-digit strings, is [itex].15426684[/itex]. Not only is this the exact proportion you seek, but whereas the computer required nearly a full minute to get through [itex]100[/itex] [itex]000[/itex] [itex]000[/itex] plays using my empirical method, I only waited five seconds for the computer to get back this time.
While these algorithms are a quick and nifty way to get the correct answer, I think this problem deserves better from me, so I'm going to get right down to the statistics of it. First we must acknowledge that in searching a serial number, every digit place you check either contains a digit of interest whose presence among the string is uncertain (success), or it does not (failure); furthermore, there is only one way that a given digit of interest can occur at a given digit place in the string. We will know the string contains our three distinct digits if and when we have three successes; we need not look further. The first success can occur in one of three ways at a given digit place since it can contain any of the three distinct digits of interest. Given this success, we are now only interested in the two digits remaining, so our definition of success changes to include only those two. The second success can occur in one of two ways at any subsequent digit place. Given the second success, we redefine success yet again to include only the last digit of interest, so the third success can only occur in one way at any subsequent digit place. If we have three successes before we get to the end of the string, then any permutations of the remaining digits to check count toward the number of strings that contain our three.
Let [itex]Y[/itex] denote a success, [itex]N[/itex] a failure, and [itex]E[/itex] any outcome following the third success. We're interested in all string permutations that have three successes (i.e. contain all three digits of interest). Following is a table of all possible string combinations where we have three successes. Traversing a row to the right represents placing the first success further into the string, and as a consequence, there are fewer combinations whose first successes start at that digit place, symbolized by successively shorter columns.
[itex]YYYEEEEE[/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex]NYYYEEEE[/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex][itex][/itex] [itex][/itex] [itex]NNYYYEEE[/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex]NNNYYYEE[/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex]NNNNYYYE[/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex]NNNNNYYY[/itex]
[itex]YYNYEEEE[/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex]NYYNYEEE[/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex]NNYYNYEE[/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex]NNNYYNYE[/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex]NNNNYYNY[/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex]
[itex]YYNNYEEE[/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex]NYYNNYEE[/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex]NNYYNNYE[/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex]NNNYYNNY[/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex]NNNNYNYY[/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex]
[itex]YYNNNYEE[/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex]NYYNNNYE[/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex]NNYYNNNY[/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex]NNNYNYYE[/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex]
[itex]YYNNNNYE[/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex]NYYNNNNY[/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex]NNYNYYEE[/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex]NNNYNYNY[/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex]
[itex]YYNNNNNY[/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex]NYNYYEEE[/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex]NNYNYNYE[/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex]NNNYNNYY[/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex]
[itex]YNYYEEEE[/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex]NYNYNYEE[/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex]NNYNYNNY[/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex]
[itex]YNYNYEEE[/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex]NYNYNNYE[/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex]NNYNNYYE[/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex]
[itex]YNYNNYEE[/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex]NYNYNNNY[/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex]NNYNNYNY[/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex]
[itex]YNYNNNYE[/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex]NYNNYYEE[/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex]NNYNNNYY[/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex]
[itex]YNYNNNNY[/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex]NYNNYNYE[/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex]
[itex]YNNYYEEE[/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex]NYNNYNNY[/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex]
[itex]YNNYNYEE[/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex]NYNNNYYE[/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex]
[itex]YNNYNNYE[/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex]NYNNNYNY[/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex]
[itex]YNNYNNNY[/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex]NYNNNNYY[/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex]
[itex]YNNNYYEE[/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex]
[itex]YNNNYNYE[/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex]
[itex]YNNNYNNY[/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex]
[itex]YNNNNYYE[/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex]
[itex]YNNNNYNY[/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex]
[itex]YNNNNNYY[/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex] [itex][/itex]
Now I will rewrite every combination as a chain product of the number of ways each of its successive outcomes could happen: the first success ([itex]3[/itex]), the second success ([itex]2[/itex]), the third success ([itex]1[/itex]), any failures before the first success ([itex]7[/itex]), any failures between the first and second successes ([itex]8[/itex]), any failures between the second and third successes ([itex]9[/itex]), and any outcomes after the third success ([itex]10[/itex]). In this way I account for every permutation of interest.
Permutations whose first successes occur at the first digit place:
[itex]3\times2\times1\times10\times10\times10\times10\times10=600[/itex] [itex]000[/itex]
[itex]3\times2\times9\times1\times10\times10\times10\times10=540[/itex] [itex]000[/itex]
[itex]3\times2\times9\times9\times1\times10\times10\times10=486[/itex] [itex]000[/itex]
[itex]3\times2\times9\times9\times9\times1\times10\times10=437[/itex] [itex]400[/itex]
[itex]3\times2\times9\times9\times9\times9\times1\times10=393[/itex] [itex]660[/itex]
[itex]3\times2\times9\times9\times9\times9\times9\times1=354[/itex] [itex]294[/itex]
[itex]3\times8\times2\times1\times10\times10\times10\times10=480[/itex] [itex]000[/itex]
[itex]3\times8\times2\times9\times1\times10\times10\times10=432[/itex] [itex]000[/itex]
[itex]3\times8\times2\times9\times9\times1\times10\times10=388[/itex] [itex]800[/itex]
[itex]3\times8\times2\times9\times9\times9\times1\times10=349[/itex] [itex]920[/itex]
[itex]3\times8\times2\times9\times9\times9\times9\times1=314[/itex] [itex]928[/itex]
[itex]3\times8\times8\times2\times1\times10\times10\times10=384[/itex] [itex]000[/itex]
[itex]3\times8\times8\times2\times9\times1\times10\times10=345[/itex] [itex]600[/itex]
[itex]3\times8\times8\times2\times9\times9\times1\times10=311[/itex] [itex]040[/itex]
[itex]3\times8\times8\times2\times9\times9\times9\times1=279[/itex] [itex]936[/itex]
[itex]3\times8\times8\times8\times2\times1\times10\times10=307[/itex] [itex]200[/itex]
[itex]3\times8\times8\times8\times2\times9\times1\times10=276[/itex] [itex]480[/itex]
[itex]3\times8\times8\times8\times2\times9\times9\times1=248[/itex] [itex]832[/itex]
[itex]3\times8\times8\times8\times8\times2\times1\times10=245[/itex] [itex]760[/itex]
[itex]3\times8\times8\times8\times8\times2\times9\times1=221[/itex] [itex]184[/itex]
[itex]3\times8\times8\times8\times8\times8\times2\times1=196[/itex] [itex]608[/itex]
Sum: [itex]7[/itex] [itex]593[/itex] [itex]642[/itex]
Permutations whose first successes occur at the second digit place:
[itex]7\times3\times2\times1\times10\times10\times10\times10 = 420[/itex] [itex]000[/itex]
[itex]7\times3\times2\times9\times1\times10\times10\times10 = 378[/itex] [itex]000[/itex]
[itex]7\times3\times2\times9\times9\times1\times10\times10 = 340[/itex] [itex]200[/itex]
[itex]7\times3\times2\times9\times9\times9\times1\times10 = 306[/itex] [itex]180[/itex]
[itex]7\times3\times2\times9\times9\times9\times9\times1 = 275[/itex] [itex]562[/itex]
[itex]7\times3\times8\times2\times1\times10\times10\times10 = 336[/itex] [itex]000[/itex]
[itex]7\times3\times8\times2\times9\times1\times10\times10 = 302[/itex] [itex]400[/itex]
[itex]7\times3\times8\times2\times9\times9\times1\times10 = 272[/itex] [itex]160[/itex]
[itex]7\times3\times8\times2\times9\times9\times9\times1 = 244[/itex] [itex]944[/itex]
[itex]7\times3\times8\times8\times2\times1\times10\times10 = 268[/itex] [itex]800[/itex]
[itex]7\times3\times8\times8\times2\times9\times1\times10 = 241[/itex] [itex]920[/itex]
[itex]7\times3\times8\times8\times2\times9\times9\times1 = 217[/itex] [itex]728[/itex]
[itex]7\times3\times8\times8\times8\times2\times1\times10 = 215[/itex] [itex]040[/itex]
[itex]7\times3\times8\times8\times8\times2\times9\times1 = 193[/itex] [itex]536[/itex]
[itex]7\times3\times8\times8\times8\times8\times2\times1 = 172[/itex] [itex]032[/itex]
Sum: [itex]4[/itex] [itex]184[/itex] [itex]502[/itex]
Permutations whose first successes occur at the third digit place:
[itex]7\times7\times3\times2\times1\times10\times10\times10 = 294[/itex] [itex]000[/itex]
[itex]7\times7\times3\times2\times9\times1\times10\times10 = 264[/itex] [itex]600[/itex]
[itex]7\times7\times3\times2\times9\times9\times1\times10 = 238[/itex] [itex]140[/itex]
[itex]7\times7\times3\times2\times9\times9\times9\times1 = 214[/itex] [itex]326[/itex]
[itex]7\times7\times3\times8\times2\times1\times10\times10 = 235[/itex] [itex]200[/itex]
[itex]7\times7\times3\times8\times2\times9\times1\times10 = 211[/itex] [itex]680[/itex]
[itex]7\times7\times3\times8\times2\times9\times9\times1 = 190[/itex] [itex]512[/itex]
[itex]7\times7\times3\times8\times8\times2\times1\times10 = 188[/itex] [itex]160[/itex]
[itex]7\times7\times3\times8\times8\times2\times9\times1 = 169[/itex] [itex]344[/itex]
[itex]7\times7\times3\times8\times8\times8\times2\times1 = 150[/itex] [itex]528[/itex]
Sum: [itex]2[/itex] [itex]156[/itex] [itex]490[/itex]
Permutations whose first successes occur at the fourth digit place:
[itex]7\times7\times7\times3\times2\times1\times10\times10 = 205[/itex] [itex]800[/itex]
[itex]7\times7\times7\times3\times2\times9\times1\times10 = 185[/itex] [itex]220[/itex]
[itex]7\times7\times7\times3\times2\times9\times9\times1 = 166[/itex] [itex]698[/itex]
[itex]7\times7\times7\times3\times8\times2\times1\times10 = 164[/itex] [itex]640[/itex]
[itex]7\times7\times7\times3\times8\times2\times9\times1 = 148[/itex] [itex]176[/itex]
[itex]7\times7\times7\times3\times8\times8\times2\times1 = 131[/itex] [itex]712[/itex]
Sum: [itex]1[/itex] [itex]002[/itex] [itex]246[/itex]
Permutations whose first successes occur at the fifth digit place:
[itex]7\times7\times7\times7\times3\times2\times1\times10 = 144[/itex] [itex]060[/itex]
[itex]7\times7\times7\times7\times3\times2\times9\times1 = 129[/itex] [itex]654[/itex]
[itex]7\times7\times7\times7\times3\times8\times2\times1 = 115[/itex] [itex]248[/itex]
Sum: [itex]388[/itex] [itex]962[/itex]
Permutations whose first successes occur at the sixth digit place:
[itex]7\times7\times7\times7\times7\times3\times2\times1 = 100[/itex] [itex]842[/itex]
Sum: [itex]100[/itex] [itex]842[/itex]
By taking the sum of these six sums of sets of permutations, we have determined that there are [itex]15[/itex] [itex]426[/itex] [itex]684[/itex] [itex]8[/itex]-digit strings that contain each of any three distinct digits. Therefore we can find the probability that all three digits you guess are in the serial number on a dollar bill in the following way:
[itex]P(win)=\frac{15426684}{100000000}=0.15426684[/itex]
Applying this whole process in general involves setting up [itex]p-m+1[/itex] sets of combinations, where the sets explore combinations whose first successes occur anywhere from the first digit place to the [itex](p-m+1)[/itex]th digit place. The way you consider all the combinations in a given set seems to involve moving the last success from right after the preceding success along to the end, then starting the process over again for every position closer to the end the preceding success is moved, and then starting that over again for every position closer to the end the success that precedes that one is moved, and so on, such that the number of combinations follows a binomial pattern. To get permutations from combinations, you substitute the number of ways each outcome can happen. At the beginning, there will always be [itex]m[/itex] ways for a success to occur at any spot and [itex]n-m[/itex] ways for a failure to occur. Every time you mark down a success, the number of ways for a success to occur at any subsequent spot decrements by one and the number of ways for a failure to occur increments by one. Marking failures does not change the number of ways either can occur. Lastly, once [itex]m[/itex] successes have been marked down, any subsequent spots can take on any of the [itex]n[/itex] possible values. Then it's just a matter of summing the sets of permutations of interest and dividing by the total possible number of permutations. I'd like to think that your formula is mathematical shorthand for carrying out this long-winded process, but if there's one thing I can guarantee, its that your formula is completely backed by the results I've obtained from each of the methods I've used to tackle this problem.