Computational engineering of protein binding pocket
You can try an evolutionary algorithm. If you can quickly evaluate the binding affinity you can initialize a set of copies of your protein but with random mutations. You can assign them a fitness score based on the affinity of the binding. The ones with highest affinity you replicate again with some probability of mutating each amino acid and you continue for as many generations as you need. If you find your parameters (mutation rate, population size, etc) correctly you can easily optimize the binding without knowing anything a priori about the different sites. There is a lot of literature on this, I suggest you do a quick Google scholar search on directed evolution or evolutionary algorithms to optimize binding affinity. 

Paper on in silico evolution to optimize protein-protein binding