ай-ай-ай. Не используй глобальные переменные. А если используешь слова global, nonlocal, то из надо писать в начале функции:

```python
def gen_bin(p, a)
    global not11
```

Вообще, эта задача решается красивее. 

Ещё, мне кажется, что в этом решении есть ошибка, и некоторые последовательности учитываются несколько раз