Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # gradient_combo.py
- def next_highest_combo(perm, base=10):
- size = len(perm)
- max_num = max(perm)
- if perm == sorted(perm)[::-1]:
- perm.reverse()
- for i in range(len(perm) - 1, -1, -1):
- if perm[i] < max_num:
- perm[i] += 1
- for j in range(i + 1, len(perm) - 1):
- perm[j] = perm[i]
- return perm
- i = size - 2
- while i >= 0 and perm[i] >= perm[i + 1]:
- i -= 1
- if i == -1:
- if max(perm) == base:
- return None
- return [0] * (size - 1) + [max(perm) + 1]
- j = size - 1
- while perm[j] <= perm[i]:
- j -= 1
- perm[i], perm[j] = perm[j], perm[i]
- perm = perm[:i+1] + perm[i+1:][::-1]
- return perm
- base = 3
- perm = [0, 0, 0, 0]
- while perm:
- print(''.join(map(str, perm)))
- perm = next_highest_combo(perm, base)
- '''
- 0000
- 0001
- 0010
- 0100
- 1000
- 0011
- 0101
- 0110
- 1001
- 1010
- 1100
- 0111
- 1011
- 1101
- 1110
- 1111
- 0002
- 0020
- 0200
- 2000
- 0012
- 0021
- 0102
- 0120
- 0201
- 0210
- 1002
- 1020
- 1200
- 2001
- 2010
- 2100
- 0022
- 0202
- 0220
- 2002
- 2020
- 2200
- 0112
- 0121
- 0211
- 1012
- 1021
- 1102
- 1120
- 1201
- 1210
- 2011
- 2101
- 2110
- 0122
- 0212
- 0221
- 1022
- 1202
- 1220
- 2012
- 2021
- 2102
- 2120
- 2201
- 2210
- 0222
- 2022
- 2202
- 2220
- 1112
- 1121
- 1211
- 2111
- 1122
- 1212
- 1221
- 2112
- 2121
- 2211
- 1222
- 2122
- 2212
- 2221
- 2222
- 0003
- 0030
- 0300
- 3000
- 0013
- 0031
- 0103
- 0130
- 0301
- 0310
- 1003
- 1030
- 1300
- 3001
- 3010
- 3100
- 0023
- 0032
- 0203
- 0230
- 0302
- 0320
- 2003
- 2030
- 2300
- 3002
- 3020
- 3200
- 0033
- 0303
- 0330
- 3003
- 3030
- 3300
- 0113
- 0131
- 0311
- 1013
- 1031
- 1103
- 1130
- 1301
- 1310
- 3011
- 3101
- 3110
- 0123
- 0132
- 0213
- 0231
- 0312
- 0321
- 1023
- 1032
- 1203
- 1230
- 1302
- 1320
- 2013
- 2031
- 2103
- 2130
- 2301
- 2310
- 3012
- 3021
- 3102
- 3120
- 3201
- 3210
- 0133
- 0313
- 0331
- 1033
- 1303
- 1330
- 3013
- 3031
- 3103
- 3130
- 3301
- 3310
- 0223
- 0232
- 0322
- 2023
- 2032
- 2203
- 2230
- 2302
- 2320
- 3022
- 3202
- 3220
- 0233
- 0323
- 0332
- 2033
- 2303
- 2330
- 3023
- 3032
- 3203
- 3230
- 3302
- 3320
- 0333
- 3033
- 3303
- 3330
- 1113
- 1131
- 1311
- 3111
- 1123
- 1132
- 1213
- 1231
- 1312
- 1321
- 2113
- 2131
- 2311
- 3112
- 3121
- 3211
- 1133
- 1313
- 1331
- 3113
- 3131
- 3311
- 1223
- 1232
- 1322
- 2123
- 2132
- 2213
- 2231
- 2312
- 2321
- 3122
- 3212
- 3221
- 1233
- 1323
- 1332
- 2133
- 2313
- 2331
- 3123
- 3132
- 3213
- 3231
- 3312
- 3321
- 1333
- 3133
- 3313
- 3331
- 2223
- 2232
- 2322
- 3222
- 2233
- 2323
- 2332
- 3223
- 3232
- 3322
- 2333
- 3233
- 3323
- 3332
- 3333
- '''
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement