Given a bitstring generate all bitstring with n flipped bits

For an algorithm I need to be able to iterate over all bit strings where $$k$$ bits are flipped given a bit string with length $$n$$ and $$n \geq k$$. For instance let's say I have the bit string $$1001$$ and I want to have all bit strings with $$2$$ bits flipped. That should result in the following bit strings:

1010
1100
1110
0000
0011
0101


So given a bit string of length $$n$$ and where $$k$$ bits will be flipped the result will be $$\binom{n}{k}$$ bit strings. Is there an efficient way to generate all of them? The bit strings I have as input are just unsigned integers so I can use bit twiddling!

Let your initial bit string be x.
For all numbers b with k bits set (i.e. where k bits are 1), output x xor b.
Finding all numbers with k bits set is described elsewhere, for example here