I am working on a computer program where I need to sample a set of say $k$ elements from a set of binary numbers ranging from $0$ to $2^n-1$, for some integer $n$.
For various reasons, I want the elements of my sample to be as distant from each other as possible, for example in the Hamming sense. When computing such distances, the elements are to be regarded as bit sequences of length $n$.
As an example, say that $n=3$. Then our binary numbers are $000, 001, 010, 011, 100, 101, 110, 111$. Suppose we want to make a sample of $k = 3$ elements. In this case, a good sample would be $000, 011, 110$, as the Hamming distance between any pair of elements in the sample is $2$.
Is there a way to accomplish this? I am not necessarily looking for the optimal solution, but rather for something which is relatively easy to implement. A random algorithm which produces a sample of expected size $k$ would probably also be fine.