Permutações de número binário trocando dois bits (não lexicograficamente)

Estou procurando um algoritmo que calcule todas as permutações de uma cadeia de bits de determinado comprimento (n) e quantidade de bits definidos (k) Por exemplo, enquanton=4 ek=2 o algoritmo deve gerar:

1100
1010
1001
0011
0101
0110

Estou ciente do Hack de Gosper, que gera as permutações necessárias em ordem lexicográfica. Mas eu preciso que eles sejam gerados de tal maneira que duas permutações consecutivas diferam em apenas duas (ou pelo menos um número constante de) exposições de bits (como no exemplo acima). Outro bithack para fazer isso seria incrível, mas também uma descrição algorítmica me ajudaria muito.

questionAnswers(2)

yourAnswerToTheQuestion