この問題は、0と1の順列を作成することに関するものです。コーディングソリューションとして最も簡単なのは、とを使用することnext_permutationですvector<bool>。
辞書式順序で最も早い順列を持つベクトルを準備します(1つは後ろにあります)。next_permutationが返されるまで実行しますfalse。これは、3ビットが設定されたすべての8ビットシーケンスを生成するデモコードです。
vector<bool> data(8, false);
data[7] = data[6] = data[5] = true;
do {
    for (int i = 0 ; i != data.size() ; i++) {
        cout << (int)data[i];
    }
    cout << endl;
} while (next_permutation(data.begin(), data.end()));
デモを実行しているideoneへのリンクは次のとおりです。
プログラムには、最後の8つの要素がに設定された32ビットのベクトルが必要1です。シーケンスの要素を出力する代わりに、それらを32ビットに変換しint、出力コンテナーに格納する必要があります。