Considering blocks of binary digits, are from all binary numbers $\in \{0,\cdots,2^{N}-1\}$
Which operations can I define which will preserve the number of 1-bits in any given number? Is there some systematical way to construct a set or family of such operations which will make me able to systematically create all numbers given one particular number?
What I am interested in are all numbers of a particular population count $k$, or bit-sum if you will.
Own work:
Consider one number for $k=1, N = 4$ : 0001
Rotation of the bits will preserve the sum of digits. This in algebraic language can be viewed as cyclic groups. For this example in group theoretical language we can prove that we can generate all possible 4 bit numbers of sum 1.
But what happens for $k=2$, starting with for example 0011? Rotations can give us (generate) 0110, 1100, 1001, but these are only a subset of all possible 4 bit numbers which digit sum is 2.
We also need to be able to make 0101 and 1010.
Permutation of first and last bit takes 0011 $\to$ 1010 and with a combination of these two operations we can now generate all two-summing binary numbers of length 4.
But what about a general case? Can we prove that the combination of these two operations and any number for any $k,N$ will always be able to generate all numbers in the same set? If it is not possible, what will be a more fruitful approach?
Yes, your two operations allow you to generate all numbers with $k$ bits, starting from any particular number with $k$ bits.
Think of the bits as being arranged in a circle. The first and last bits are adjacent to each other on the circle, and you are able to swap those two adjacent bits. Furthermore, with the help of the rotation operation, you can swap any two adjacent bits. Just rotate all of the bits until the two bits you want to swap occupy the spots of the first and last bits, then perform the swap, then rotate everything so the two bits are back in the same two positions (but swapped).
It is well known that if you can swap any two adjacent elements, then you can achieve any permutation. https://proofwiki.org/wiki/Transpositions_of_Adjacent_Elements_generate_Symmetric_Group Since you can permute the bits arbitrarily, you can get all numbers with $k$ bits.