Opgave

Implementeer Python-functies voor het genereren van deelverzamelingen van {1..n} in volgorde van minimale wijziging, m.a.w. voor het genereren van Gray codes:

>>> grayCodeRank(8, {1, 2, 3, 4, 5, 7, 8})
173
>>> grayCodeUnrank(8, 173)
{1, 2, 3, 4, 5, 7, 8}
>>> grayCodeSuccessor(8, {1, 2, 3, 4, 5, 7, 8})
{1, 2, 3, 4, 5, 8}

Referentie