Вы слишком задумываетесь об этом
Эта часть пытается слишком много
for word in words:
for i in range(len(word)):
temp = string[0:i] + first + string[i:len(string)]
print "temp = " + str(temp)
perm.append(temp)
Посмотрите, насколько это просто должно быть
def get_powerset (string):
perm = []
if len(string) == 0:
perm.append("")
return perm
#if len(string) == 1:
# perm.append(string)
# perm.append("")
first = string[0]
print "first = " + str(first)
rem = string[1:len(string)]
print "rem = " + str(rem)
words = get_powerset(rem)
perm.extend(words)
for word in words:
perm.append(first+word)
return perm
if __name__=="__main__":
a = "ab"
mag = get_powerset(a)
print mag
Теперь вы сможете сделать код намного приятнее с небольшим рефакторингом
Charles является Прокси HTTP / монитор HTTP / Обратный Прокси, который позволяет разработчику просмотреть весь Трафик HTTP между их машиной и Интернетом. Это включает запросы, ответы и HTTP-заголовки (которые содержат cookie и кэширующуюся информацию).
Работает на JAVA. Доступный на OSX, Linux и Windows.
Если Вы надеетесь прослеживать трафик приложения, Wireshark является лучшим инструментом, который я нашел - он может зарегистрировать и декодировать HTTP и много других протоколов, и средства поиска GUI делают нахождение сообщений, Вы интересны в довольно быстром и безболезненном.
Другие причины я рекомендую это:
Вы могли также использовать dTrace для контроля еще в большем количестве деталей, если это - то, в чем Вы нуждаетесь.
Я второе использование Charles, это - действительно превосходный инструмент для исследования HTTP. При использовании со средством моделирования iPhone (или любое другое приложение OS X), Charles автоматически настраивает параметры настройки системы для использования себя в качестве прокси, таким образом, только необходимо запуститься и работать. Это также очень легко исследовать трафик несколькими различными способами и имеет очень снисходительную ознакомительную версию, которая полнофункциональна (время, ограниченное часом с несколькими экранами ворчания), таким образом, можно дать ему хорошую попытку.
Зависит от того, что Вы подразумеваете под монитором...
Если Вы просто хотите знать/останавливать, когда установленное приложение (или ОС) пытается "позвонить домой", то я рекомендую LittleSnitch.
Душевное спокойствие, которое Вы получаете, определенно стоит потери веса с Вашего банковского счета.