Generate a set of binary numbers so that they are as dissimilar as possible My goal is to find a systematic way of generating a set $B = \{b_1,b_2,...b_N\}$ (size $N$) of binary numbers of length $L$ with a fixed amount of "ones" $O$ so that the difference from each to each number is maximized.
Example $1$:

Let $N=2$, $L=4$ and $O=2$, so we are searching for $2$ binary numbers of Length $4$ that both have $2$ ones in them. (With maximal difference)

Possible solutions would be $B = \{1010, 0101\}$ or $B = \{1100,0011\}$
Example $2$:

Let $N=6$, $L=4$ and $O=2$, so we are searching for $6$ binary numbers of Length $4$ that all have $2$ ones in them.  (With maximal difference)

The only solution in this case would be
$$B=\{1100, 1010, 1001, 0110, 0101, 0011\}$$
My path of finding a general solution for higher numbers of $L$,$N$, and $O$ led me to code theory and hamming cubes.
My problem thereafter gets boiled down to finding $N$ vertices on an $L$ dimensional hamming cube so that all chosen vertices are constrained to having $O$ ones and yield to a maximized hamming distance.
In this post (which states a quite similar problem) the top answer states that there is no other method than brute-forcing.
With my actual parameters $N=90$, $L=16$, $O=4$ there are $1.83121849778 \cdot 10^{154}$ different permutations to check and here brute force is not applicable.
Do you know of any other approaches to find one (not all) of the possible solutions?
 A: In this area the standard terminology is $n$ (your $L$) for codeword length and $w$ (your $O$) for Hamming weight.
This is a well studied problem, very difficult in general, but constructions for particular cases may exist. There is also a vast literature. The specific topic constant weight codes. What you call the difference is called the minimum distance $d$ of a code.
Let $d=2k-1$ if $d$ is odd and $d=2k$ if $d$ is even.
The Johnson bound gives an upper bound to the maximum number $A(n,d,w)$ of codewords for a constant weight $w$ code of length $n:$
$$
A(n,d,w)\leq \left \lfloor  \frac{n}{w} \left\lfloor  \frac{n-1}{w-1} \left \lfloor \cdots \left \lfloor \frac{n-w+k}{k}\right \rfloor \cdots \right \rfloor
 \right\rfloor  \right \rfloor.
$$
Clearly $A(n,2w,w)=\lfloor \frac{n}{w} \rfloor$ since if you could keep the support of the ones all distinct for each codeword you'd get distance $d=2w.$
Applying Johnson bound, with $n=16,w=4$ (please check my computations--thanks @JyrkiLahtonen) gives
$$
A(16,6,4)=20.
$$
See the nice construction by Jyrki in the comments achieving this. So no code achieving your requirement of 80 codewords exists.
There are other tabulated bounds online (for specific cases better than Johnson bound) but require a lot of trawling through (which you may want to do). I have linked to one of those sites by Erik Agrell here.
