редактирование : Этот ответ работает, но в наше время необходимо просто использовать запросы библиотека, как упомянуто другими ответами ниже.
Использование httplib.
>>> import httplib
>>> conn = httplib.HTTPConnection("www.google.com")
>>> conn.request("HEAD", "/index.html")
>>> res = conn.getresponse()
>>> print res.status, res.reason
200 OK
>>> print res.getheaders()
[('content-length', '0'), ('expires', '-1'), ('server', 'gws'), ('cache-control', 'private, max-age=0'), ('date', 'Sat, 20 Sep 2008 06:43:36 GMT'), ('content-type', 'text/html; charset=ISO-8859-1')]
существует также getheader(name)
для получения определенного заголовка.
Ключевое слово, которое нужно искать, - это перестановка . Существует множество свободно доступных исходных кодов, которые их выполняют.
Что касается того, чтобы они не повторялись, я предлагаю простой рекурсивный подход: для каждой цифры у вас есть выбор, принимать ее в свой вариант или нет, поэтому ваша рекурсия учитывается цифры и разветвляются на два рекурсивных вызова, один из которых включает цифру, а другой - исключает. Затем, после того, как вы достигли последней цифры, каждая рекурсия по существу дает вам (уникальный, отсортированный) список цифр без повторов. Затем вы можете создать все возможные перестановки этого списка и объединить все эти перестановки для достижения конечного результата.
(То же, что и Даффимо сказал: я не буду предоставлять для этого код)
Дополнительное примечание: рекурсия основана на на 0/1 (исключение, включение), которые можно напрямую преобразовать в биты, следовательно, в целые числа. Следовательно, чтобы получить все возможные комбинации цифр без фактического выполнения самой рекурсии, вы можете просто использовать все 10-битные целые числа и перебирать их. Затем интерпретируйте числа так, чтобы установленный бит соответствовал включению цифры в список, которую необходимо переставить.
Представьте, что у вас есть магическая функция - при наличии массива цифр она вернет вам правильные перестановки.
Как вы можете использовать эту функцию для создания нового списка перестановок всего с одной дополнительной цифрой?
например,
, если я дал вам функцию с именем permute_three (char [3] цифры)
, и я говорю вам, что он работает только для цифр 0
, 1
, 2
, как вы можете написать функцию, которая может переставлять 0
, 1
, 2
, 3
, используя заданную функцию permute_three
?
...
как только вы решил это, что вы заметили? вы можете это обобщить?
используя Доллар это просто:
@Test
public void generatePermutations() {
// digits is the string "0123456789"
String digits = $('0', '9').join();
// then generate 10 permutations
for (int i : $(10)) {
// shuffle, the cut (0, 4) in order to get a 4-char permutation
System.out.println($(digits).shuffle().slice(4));
}
}