Smallest set of balls under hamming distance that covers all $n$-bit strings
The object you are looking for is known as a covering code. Finding the smallest covering code for a given radius is generally a difficult problem, just like its more well-known dual problem, error-correcting codes.