ylab 2023. 1. 31. 15:21

https://www.acmicpc.net/problem/15651

 

15651번: N과 M (3)

한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해

www.acmicpc.net

#중복이 포함되어 있으므로, combination이나 permutation적용 불가
N,M = map(int,input().split())

choice = [0 for _ in range(M)]

def recursion(i):
    if i ==M:
        for j in choice:
            print(str(j),end=' ')
            
        print()
    else:
        for k in range(1,N+1):
            choice[i] = k
            recursion(i+1)
            
            
recursion(0)

 

재귀생각!!