C++ (188 bytes/chars): #include <cstdlib> #include <iostream> #define y if(b)f(b-1) int x=0; void f(int b){y;std::cout<<(x^=1<<b)<<' ';y;} int main(int,char**v){int b=std::atoi(v[1]);std::cout<<x<<' ';y;} Specify the number of bits on the command line and it will print a list of space separated integers.