In [3]:
def electron_config(atomic_num):
    orbitals = '1s 2s 2p 3s 3p 4s 3d 4p 5s 4d 5p 6s 4f 5d 6p 7s 5f 6d 7p 6f 7d 7f'.split()
    possible_electrons = dict(s=2,p=6,d=10,f=14)
    electron_count = 0
    result = []
    for i in orbitals:
        if electron_count < atomic_num:
            orbital = ''.join(j for j in i if j in 'spdf')
            result.append(i+str(possible_electrons[orbital]))
            electron_count += possible_electrons[orbital]
        else: break
    if electron_count > atomic_num:
        dif = electron_count-atomic_num
        last_electron_pos = result[-1].find(orbital)+1
        last_electrons = int(result[-1][last_electron_pos:])
        new_num = last_electrons - dif
        result[-1]= result[-1][:last_electron_pos] + str(new_num)
    return ' '.join(result)

In [ ]: