Моя задача - написать функцию, которая возвращает все последовательности длины n, включая числа в диапазоне от A до B, где {A1 < = A2 < = A3 < = ... < = An} Например, если A = 1 B = 3 n = 2, он должен вернуться [[1,1], [1,2], [1,3], [2,2], [2,3], [3 ., 3]] Я должен использовать рекурсию и список понимание, и не может использовать itertools (я знаю, что это не имеет смысла) .My мысль была:комбинации с повторениями в python
def combinations(L,len): #L is list [A,A+1, ... ,B]
if len == 1:
return L
return [[a,b] for a in L for b in combinations(L,len-1) if b>=a]
, но он не работает при п> 2 Может ли кто-нибудь дать мне несколько намеков?
Вы имеете в виду, если вы не можете использовать [with_replacement] (https: // docs.python.org/2/library/itertools.html#itertools.combinations_with_replacement), правильно? – Brian
Что значит сказать «это не работает»? – Psytho
Я имел в виду, что списки держали вложенность, как уже указывал кто-то. – Acee