Tạo một mã lấy danh sách và số làm đầu vào và tạo tất cả các kết hợp có thể có với độ dài của số. Ví dụ: với danh sách {0,1} và số 2 :
00
01
10
11
Chương trình của bạn không phải mong đợi các ký tự hai lần hoặc nhiều hơn trong danh sách, chẳng hạn như {0,0,0,0,0,1,1,5,5}
Hãy chắc chắn rằng bạn in các kết hợp ra được sắp xếp, theo thứ tự của danh sách:
Với danh sách {0,1} và số 5 (được tạo bởi một số mã của tôi, đây là một cách quá dài để giành chiến thắng):
00000
00001
00010
00011
00100
00101
00110
00111
01000
01001
01010
01011
01100
01101
01110
01111
10000
10001
10010
10011
10100
10101
10110
10111
11000
11001
11010
11011
11100
11101
11110
11111
Nhưng với danh sách {1,0} và số 2 :
11
10
01
00
Như bạn có thể thấy, danh sách đảo ngược có nghĩa là thứ tự đảo ngược.
Hãy nhìn vào cấu trúc, nó giống như một cái cây.
Đây là mã golf, vì vậy mã ngắn nhất tính bằng byte sẽ thắng!