1,2와 2,1처럼 중복되지 않게 하기 위해 solve 함수에 idx 인자를 추가로 주어 중복되지 않는 값들을 출력할 수 있었다
소스 코드
n, m = map(int, input().split())
visit = [False] * (n+1)
out = []
def solve(count, idx, n, m):
  if count == m:
    print(' '.join(map(str, out)))
    return
  
  for i in range(idx, n+1):
    if not visit[i]:
      visit[i] = True
      out.append(i)
      solve(count+1, i+1, n, m)
      visit[i] = False
      out.pop()
  
solve(0, 1, n, m)