Пробовали ли вы отслеживать то, что на самом деле делает ваш алгоритм?
getperm('ab'):
first, rem = 'a', 'b'
words = getperm('b')
first, rem = 'b', ''
words = getperm('')
words = ['']
for word in words:
for i in range(len(word)):
pass # only called on '', so doesn't matter
return []
words = []
for word in words:
pass # only called on [], so doesn't matter
Итак, здесь нет нюансов Python; ваш алгоритм возвращает пустой список в O (N) шагах, и вы правильно закодировали этот алгоритм на Python.
(Вместо того, чтобы трассировать его вручную, вы можете добавить еще несколько полезных операторов печати и посмотрим, что делает каждый шаг.)
Вероятно, это был не тот алгоритм, который вам нужен, но вам нужно сообщить нам, что вы пытались делать. Вы, например, переносите некоторый псевдокод из Hoare в Python? Если да, то что такое псевдокод?
XGrabKey
на корневом окне то, как xbindkey делает это. Будьте осторожны относительно наличия некоторого альтернативного метода уничтожения захвата, хотя, это является очень раздражающим для движения куда-нибудь в ssh
в Ваше собственное поле только для уничтожения того процесса... И вот почему, если это был я, xbindkeys
+ "эхо 'мычание'>/tmp/moo-fifo" было бы способом сделать это. Тем путем Вы могли также управлять им в любом количестве других способов, которыми Вы еще не думали.