Instead, combinatorial chemistry suggests using a protocol somewhat like the following:

Pick a number of "useful components": small molecules with desired shapes or activity (typically parts of existing drugs), which can be combined in any order along a backbone. The space of all combinations (of some prescribed length) is huge; this is the search space.

Synthesize a number (say 100) of essentially random combinations of these components.

Test each against the target protein, and score it for activity (success in neutralising the protein).

Ditch the lowest scoring combinations (say the bottom 20); replace them by modifications of the highest scoring combinations (changing one or two components is like simulated annealing; taking the start of a sequence of one combination and continuing with another is like genetic programming).

Iterate until a combination with good activity is found.

Note that like the analogous techniques in computer science, you can use combinatorial chemistry to improve an existing molecule, or to find an all-new drug. The results are cheaper than employing an appropriate number of Ph.D.s in pharmacology and molecular biology (although you still need them).