OK, so the basic idea I have is as follows:
We want to cover as many possible combinations as possible for each try. Thus, for example, the OP's strategy of doing 111,122,..., followed by 211,222, ... would seem less than optimal, since the first 10 tries already cover any combinations with the last two digits being the same. So, it would be better to do 111,122, ... followed by something like 223,234,245, so that not only do you try to get a hit between the first digit and any of the other two, but you are also trying other options to get a hit between the 2nd and 3rd digit.
In fact, even 111,122,... is less than optimal, since they both cover 121, so you get overlap. So, it's probably best to start with something like 111,222,333,... since each of these covers 28 combinations without overlap.
After that, I figure we should just keep making sure that every new try we make has as few digits in common with whatever combinations we already tried up to that point... basically try and make each combination differ in 2 digits from any of the ones tried before. The following sequence will do exactly that (each sequence of 10 has a unique difference between 1st and 2nd digit, between 2nd and 3rd, and between 1st and 3rd):
000, 111, 222, 333, ..., 999, (at this point we have covered 10*28=280 combinations)
012, 123, 234, 345, ..., 901, (another 10 * 22 (e.g. 012 covers itself and 3*7 more) = 220)
(so with a mere 20 tries we cover half of all possible combinations!)
024, 135, 246, 357, ..., 913, (another 10 * 18 (this takes some writing out) = 180)
036, 147, 258, 369, ..., 925, (another 10 * 12 = 120)
048, 159, 260, 371, ..., 937, (another 10 * 8 = 80)
(at this point, don't proceed with 050,... since that has two digits in common with earlier 000)
051, 162, 273, 384, ..., 940, (another 10 * 5 = 50)
063, 174, 285, 396, ..., 952, (another 10 * 4 = 40)
075, 186, 297, 308, ..., 964, (another 10 * 2 = 20)
087, 198, 209, 310, ... ,976 (the last 10)
In an earlier version of my answer I said to do another 10 after these:
099, 100, 211, 322, ... , 988
the idea being that this would cover all possible pairs of 1st and 2nd digit, and thus covering all possible combinations (and thus we would have a worst case of 100). However, it turns out that whichever ones these additional 10 would cover have been covered already by the previous 90. So, worst case of this method is 90 tries, not 100.
The above method gives an average of 0.28*5.5 (the first 10 tries each cover 28 cases, so that is 280 cases out of 1000 is 28%, which on average take (1 + 10)/2 = 5.5 tries) + 0.22*15.5 + 0.18*25.5 + 0.12*35.5 + 0.08*45.5 + 0.05*55.5 + 0.04*65.5 + 0.02*75.5 + 0.01*85.5 = 25.2 tries to open the box.
I really think this method cannot be improved in terms of average number of tries, but I have no proof.
Edit ok, so this is not the most efficient strategy: see JiK's answer! Time to eat humble pie! ... Well, I hope at least I was able to express some of the ideas why some strategies might be better than others.