1. 程式人生 > >1到n的數按字典序排序

1到n的數按字典序排序

#coding:utf-8
'''
輸入:n,m
輸出從  1 到  n 的數按  字典序  排序的低  m 個數
如輸入:11 4
1 10 11 2 3 4 5 6 7 8 9 中的第四個數
輸出: 2
'''
import numpy as np
from numpy import *

s = raw_input()
s = s.split(' ')
n = int(s[0])
m = int(s[1])
nn = 0  # 生成了nn個數了
nlen = len(str(n))  # n 的長度
reslist = []  # 結果列表


def fun(a):
    global m,n,nn,reslist
    if nn>=m:
        print 'nn=',nn
        return
    elif len(a)>nlen:
            print 'a=',a,' so',len(a),'>',nlen
            return
    elif int(a)>n :
            print a,'>',n,':','a>n'
            return 
    else: 
        reslist.append(a)
        nn+=1
        print nn,'\t',a
    if (len(a)<nlen)&(nn<m):   
        for j in range(10): 
            temp = '' 
            temp = str(a)+str(j)
            fun(temp)


for i in range(1,10):   
    if nn<m:fun(str(i))

 
print reslist
print reslist[-1]