Normally LFSR is used to generate psuedo random sequence generator.
If your requirement is to go through all the 2^17 combinations, a simple counter output might do the job.
If you want to generate a random sequence, same logic can be replicated in firmware.
For a 10 bit random sequence generator
for(i=0; i<11; i++) b[i] = 1<<i;
Then pick a primitive polynomial (x^10 + x^3 + 1 is an example)
Start with a seed for x, say
x = 0x8;
rotate x to the left, and copy the exclusive or of bits 10, 3 and 0 into
y1 = (b & x) ? 1 : 0;
y2 = (b & x) ? 1 : 0;
y3 = (b & x) ? 1 : 0;
x = x << 1 | (y1 ^ y2 ^ y3);