This problem arose from software testing. The problem is a bit difficult to explain. I will first give an example, then try to generalize the problem.
There are 10 items to be tested, say A to J, and a testing tool that can test 3 items at the same time. Order of items in the testing tool does not matter. Of course, for exhaustive testing, we need $^{10}C_{3}$ combinations of items.
The problem is more complex. There is an additional condition that once a pair of items has been tested together, than the same pair does not need to be tested again.
For example, once we executed the following three tests:
A B C
A D E
B D F
we do not have to execute:
A B D
because the pair A,B was covered by the first test case, A,D was covered by the second, and B,D was covered by the third.
So the problem is, what is the minimum number of test cases that we need to ensure that all pairs are tested?
To generalize, if we have n items, s can be tested at the same time, and we need to ensure that all possible t tuples are tested (such that s > t), what is the minimum number of test cases that we need in terms of n, s and t?
And finally, what would be a good algorithm to generate the required test cases?