[Python] 0…k-1からN桁の数列を作成

問題

0…k-1から作ることのできる長さnの数字の列を全て求めなさい。

回答

def range_to_list(k):
    result = []
    for i in range(k):
        result.append(str(i))
    return result

def base_k_strings(n, k):
    if n == 0:
        return []
    if n == 1:
        return range_to_list(k)

    ans = []
    for k_string in base_k_strings(n-1, k):
        for digit in base_k_strings(1, k):
            ans.append(digit + k_string)
    return ans

print(base_k_strings(4, 3))