## Mathematica, 253 bytes f=(For[i=0;j=1,j<=#,j+=Mod[RealDigits[9801/Sqrt@8/Sum[(4j)!(1103+26390j)/(j!)^4/396^(4j),{j,0,125}],10,999][[1,j]]-1,10]+1;++i];"99iiiitS===oooo8862^^^^^^\uusRRRRRRqqqqqqqqMMMMmlllllllgggggggFFFeeeeeeeeDDDDDDaaaaa55555555<<{{\{{{{{{}}}}}}}}--@@@@@@";i)& Ungolfed: f = ( For[i = 0; j = 1, j <= #, j += Mod[ RealDigits[ 9801/Sqrt@8/ Sum[(4 j)! (1103 + 26390 j)/(j!)^4/396^(4 j), {j, 0, 125}], 10, 999][[1, j]] - 1, 10] + 1; ++i]; "99iiiitS===oooo8862^^^^^^uusRRRRRRqqqqqqqqMMMMmlllllllgggggggFFFeeeeeeeeDDDDDDaaaaa55555555<<{{{{{{{{}}}}}}}}--@@@@@@"; i ) & Usage is `f[999]`. A whopping 122 bytes are used to pad the code with a useless string to get the right character frequencies. I'll try to improve that tomorrow. The character frequencies should match the digits of pi in this order: 3#/&(,![)4+9j0it"S=;]ro862^usRqM1mlgFfeDda5<{}-@ Which I confirmed with the following snippet: Sort[Last /@ Tally[Characters@ "f=(For[i=0;j=1,j<=#,j+=Mod[RealDigits[9801/Sqrt@8/Sum[(4j)!(\ 1103+26390j)/(j!)^4/396^(4j),{j,0,125}],10,999][[1,j]]-1,10]+1;++i];\"\ 99iiiitS===oooo8862^^^^^^\ uusRRRRRRqqqqqqqqMMMMmlllllllgggggggFFFeeeeeeeeDDDDDDaaaaa55555555<<{{\ {{{{{{}}}}}}}}--@@@@@@\";i)&"]] == Sort[RealDigits[Pi, 10, 48][[1]] /. 0 -> 10] I'm computing pi with [Ramanujan's series](http://en.wikipedia.org/wiki/Approximations_of_%CF%80#20th_century). It converges to 1000 digits in 125 terms. Due to golfing reasons, I recompute the 999 necessary digits for every single digit of the subsequence, but it still completes within a second for `n = 999` on my machine.