Ordered Fractions

Algorithm

Try all the possible numerator/denominator pairs and see if the decimal representation hasn't been met before.

Python

def gen(n):
    used_magnitudes = set()
    res = []
    for denominator in range(1,n+1):
        for numerator in range(0,denominator+1):
            if not (float(numerator)/denominator in used_magnitudes):
                used_magnitudes.add(float(numerator)/denominator)
                res.append([numerator,denominator])
    return sorted(res,key=lambda i:float(i[0])/i[1])

def main():
    with open('frac1.in','r') as fIn:
        n = int(fIn.read())
    res = gen(n)
    print(res)
    with open('frac1.out','w') as fOut:
        for i in res:
            fOut.write('%d/%d\n' % (i[0],i[1]))

if __name__ == '__main__':
    main()