There is an app online called "Set Finder" (http://www.spoofdata.com/setfinder/?id1=6144805)
which allows the user to enter the part number for several parts then the app
will suggest sets that contain those parts. It is not very user friendly and
part numbers are difficult to determine. The part numbers need to be complete
with colour code (sensible for logically reducing the number of possible sets)
but the numbering systems are not very well explained. In addition there are
different numbers for similar parts e.g. "2 x 4 Brick Red" has at least two different
numbers. I think there is an overlap between parts in older sets that have a
different number than newer sets but it can be quite frustrating.
Perhaps this is a function in bricklink which I have not yet discovered. I rarely
Use "Part Out" so perhaps it is there or if not perhaps that would be a good
place to add the "Set Finder " function.