The reverse of an n-bit number is just its n binary digits in reverse order:
001010010 → 010010100
Given a number n, generate all n-bit integers ([0, 2n-1]) in an arbitrary order, with only one restriction: there must be a splitting point such that the reverse of an integer is on the opposite side of the splitting point. Integers which are their own reverse must come before the splitting point.
Other than this single splitting point there are no restrictions, all the integers before or after it may come in whatever order you desire.
Example for 4 bits (you don't have to generate this order):
0000, 0001, 0010, 0011, 0101, 0110, 0111, 1001, 1011, 1111,
0100, 1000, 1010, 1100, 1101, 1110
You may output the integers as their binary digits or just as integers. You don't have to explicitly output the splitting point.