解説

NN桁の0からはじまる、NNビットのグレイコードを生成し、順にSSとのxor(排他的論理和)を取ればよいです。
グレイコードはビット演算や再帰で生成可能です。

解答例(Python)