An enumerative algorithm for de novo design of proteins with diverse pocket structures