Let's lay down some groundwork to help us out:
- Let $req(n, d)$ be the number of digit $d$ required to write out all the numbers from 1 to $n$.
- Since each kit contains two of each digit, we have $2n$ of each digit
- This means we want the smallest $n$ for which $req(n, d) > 2n$ for some $d$
It seems like this would be pretty easy to brute-force until you realize that the first number will have around 20 digits (individual digits see about equal use and we get 20 more digits each time). So instead let's figure out how many of each number is required in order to write up to 9, 99, 999, etc.
Up to 9: One each of 1 through 9
Up to 99: One each of 0 through 9 for each group of ten, then ten each of 1 through 9 for the numbers in the tens places. This totals twenty of each except zero, leaving us with 99*2-20 = 178 of each digit other than zero.
Up to 999: Same as up to 99 (with leading zeros) for each group of 100, then 100 each of 1 through 9 for the hundreds places. This totals twenty*10 + 100 = 300 of each digit required, leaving 999*2-300 = 1698 of each digit left.
So a pattern here is that to write all the numbers of $n$ and fewer digits, we need $req(10^{n-1}-1,1)*10+10^{n-1}$ of each digit other than zero. So where does this get close to $2n$?
Up to 9 (10^1-1): 1
Up to 99 (10^2-1): 1*10+10 = 20
Up to 999 (10^3-1): 20*10+100 = 300
Up to 9999 (10^4-1): 300*10+1000 = 4000
Up to 99999 (10^5-1): 50000
Up to 999999 (10^6-1): 600000
Up to 9999999 (10^7-1): 7000000
Up to 99999999 (10^8-1): 80000000
Up to 999999999 (10^9-1): 900000000
Up to 9999999999 (10^10-1): 10000000000
Up to 99999999999 (10^11-1): 110000000000
Up to 999999999999 (10^12-1): 1200000000000
...
Up to 9999999999999999999 (10^19-1):
Need 19000000000000000000
Up to 99999999999999999999 (10^20-1):
Need 200000000000000000000
So it is somewhere between $10^{19}-1$ and $10^{20}-1$ at the latest.
Here's a good summary of what we've determined so far. Keep in mind that digits required and digits left isn't accurate for zero because it follows a different pattern.
# balls | digits req | digits left
------------------------------------
10^1 - 1 | 1 * 10^0 | 19*10^0 - 2
10^2 - 1 | 2 * 10^1 | 18*10^1 - 2
....................................
10^17 - 1 | 17 * 10^16 | 3*10^16 - 2
10^18 - 1 | 18 * 10^17 | 2*10^17 - 2
10^19 - 1 | 19 * 10^18 | 1*10^18 - 2
10^20 - 1 | 20 * 10^19 | 0*10^19 - 2
Looking at it a different way:
Since there have been some nice patterns so far, let's try looking at a different pattern that might give us the solution directly. What if we are only given one strip of digits in each kit? We can easily brute-force that with this Python code:
current = 1
available = [0]*10
while current < 200000000:
current_str = str(current)
for i in range(10):
available[i] += 1 - current_str.count(str(i))
if available[i] < 0:
raise Exception('Done! %s has no more available at %s' % (i, current))
current += 1
This tells us that for 1 strip we run out of 1's at 199991. This would take to long to calculate for 2 strips, but what about partial strips? That doesn't exactly make sense so let's say she has to get the strips from a vending machine for 10 cents each, and each kit has 11 cents in it. Then after opening 10 kits she buy an extra strip for 11 strips total. Let's change this line:
available[i] += cents_per_kit - cost_per_strip*current_str.count(str(i)) # cost_per_strip is 10
Here's a table of what this gives:
Strips/kit | Result
-----------|-------------
1.0 | 199991
1.1 | 1999918
1.2 | 19999198
1.3 | 199991998
Each of these is for when we run out of 1's. This looks like a promising pattern that should continue as follows:
1.4 | 199991998
1.5 | 1999919998
1.6 | 19999199998
1.7 | 199991999998
1.8 | 1999919999998
1.9 | 19999199999998
2.0 |199991999999998
Unfortunately, there must a break in the pattern here - 199991999999998 only takes two 1's, so we can cover that with what is included in the standard kit. What this does tell us, however, is that @Joel Rondeau and @FlorianF almost certainly have it right - they came up with 1,999,919,999,999,981, which is almost exactly what my pattern suggests.
Practical Answer:
She'll die long before she runs out of numbers. Also, she'd need a bigger bowl - one sheet of 8.5" by 11" paper weighs 0.04 lbs (according to Yahoo answers), and if the stickers are 2.5mm by 2.5mm (reasonably small), then each sticker weighs 4.5 milligrams. Right before ball $10^{19}$, she'll have about $10^{19}$ stickers left, which would weigh a total of $4.5*10^{13}$ kilograms. That's 45 billion tonnes. According to Wikipedia, that's one twelfth of the total live biomass excluding bacteria. And that's excluding all the balls and stickers on those balls. They're probably using Soylent Green stickers...
Edit:
As it turns out, the first time she'll run out is shortly before reaching $2*10^{15}$. Right before ball $10^{15}$ she'll have around $5*10^{15}$ leftover. Using the same approximations, this would end up being 22.5 million tonnes. She will have used $1.5*10^{16}$ stickers up to that point, which would weigh 67.5 million tonnes, for a total of 90 million tonnes of stickers. The Great Pyramid of Giza is estimated at 5.9 million tonnes, so she has almost 4 Great Pyramids worth of leftover stickers.