6603楽透-取得状況のすべての数字


https://www.acmicpc.net/problem/6603
『私の答え』
# 재귀함수
def func(x, cnt): # 어디까지 갔는지, 얼마나 뽑았는지
  # cnt == 6 일때
  if cnt == 6:
    for i in range(k):
      if select[i]:
        print(S[i], end=' ')
    print()
    return
  # 아닐 때
  for i in range(x, k):
    select[i] = True
    func(i+1, cnt+1)
    select[i] = False

# while 문 입력 루프
while True:
  # 입력하기 K, S 분류
  inp = list((map(int, input().split())))
  k = inp[0]
  S = inp[1:]
  # k ==0 일때 탈출
  if k == 0:
    break
  # 뽑은거 리스트
  select = [False for _ in range(k)]
  func(0, 0)
  print()
<その他の解答-itertools.組合せの使用>
from itertools import combinations

while True:
    s = list(map(int, input().split()))
    if s[0] == 0:
        break
    del s[0]
    s = list(combinations(s, 6))
    for i in s:
        for j in i:
            print(j, end=' ')
        print()
    print()