#include <iostream>
using namespace std;
const auto c=4;
auto b=8;
const char* m="ABCDEFGHIJKLMN";
int a[c];

template<int N>
auto f(){
for(auto i=0;i<b;++i){
a[c-N]=i;
f<N-1>();
}
}
template<>
auto f<0>(){
for(auto i=0;i<c;++i)
cout<<m[a[i]];
cout<<endl;
}
int main() {
f<c>();
return 0;
}
バグがあったので直した