I have created this code and for the life of me I can't figure out why the rows are working just fine and yet the columns will not work, it just doesn't make sense to me.
#sudoku game
import random
#generate board
def build_board():
    board=[]
    for i in range(9):
        block=[[" "," "," "],
               [" "," "," "],
               [" "," "," "]]
        board.append(block)
    return board
#add numbers
def fill_board(board):
    current_num=1
    block_counter=0
    block_row=1
    column_counter=0
    block_column=1
    for block in board: #for each block
        #check rows
        TF_rows=[]
        if block_row==1: #if in first block row
            block_list=[0,1,2]
        elif block_row==2:
            block_list=[3,4,5]
        elif block_row==3:
            block_list=[6,7,8]
        row=0 #row index
        row1=[] #capture statements from blocks
        row2=[] #capture statements from blocks
        row3=[] #capture statements from blocks
        for i in block_list: #block index
            check_block=board[i] #block
            for ROW in check_block:
                if current_num in ROW: #if current_num in row
                    add="false"
                else:
                    add="true"
                if row==0:
                    row1.append(add)
                elif row==1:
                    row2.append(add)
                elif row==2:
                    row3.append(add)
                row+=1
            row=0
        if "false" in row1:
            TF_rows.append("false")
        else:
            TF_rows.append("true")
        if "false" in row2:
            TF_rows.append("false")
        else:
            TF_rows.append("true")
        if "false" in row3:
            TF_rows.append("false")
        else:
            TF_rows.append("true")
        #check column
        TF_columns=[]
        if block_column==1:
            block_col=[0,3,6]
        elif block_column==2:
            block_col=[1,4,7]
        elif block_column==3:
            block_col=[2,5,8]
        column=0
        column1=[]
        column2=[]
        column3=[]
        for i in block_col:
            check_blocks=board[i]
            for RoW in check_blocks: #each row
                item=RoW[column]
                if item==current_num:
                    add="false"
                else:
                    add="true"
                if column==0:
                    column1.append(add)
                elif column==1:
                    column2.append(add)
                elif column==2:
                    column3.append(add)
                column+=1
            column=0
        if "false" in column1:
            TF_columns.append("false")
        else:
            TF_columns.append("true")
        if "false" in column2:
            TF_columns.append("false")
        else:
            TF_columns.append("true")
        if "false" in column3:
            TF_columns.append("false")
        else:
            TF_columns.append("true")
        #evaluate responses
        row_num=0 #index number
        col_num=0 #index number
        positions=[]
        for i in TF_rows: #for item in true false rows
            row_cur=i
            for i2 in TF_columns: #for item in true false columns
                col_cur=i2
                if row_cur=="true" and col_cur=="true": #good position
                    add_pos=[row_num,col_num]
                    #check if spot is clear
                    check_row=block[row_num]
                    check_pos=check_row[col_num]
                    if isinstance(check_pos,str)==True:
                        positions.append(add_pos)
                col_num+=1
            col_num=0
            row_num+=1
        #add number
        change_pos=random.choice(positions)
        change_row=block[change_pos[0]]
        change_row[change_pos[1]]=current_num
        del block[change_pos[0]]
        block.insert(change_pos[0],change_row)
        #update values
        block_counter+=1
        if block_counter in (3,6):
            block_row+=1
        column_counter+=1
        if column_counter in (0,3,6):
            block_column=1
        elif column_counter in (1,4,7):
            block_column=2
        elif column_counter in (2,5,8):
            block_column=3
    return board
#display board
def display(board):
    num=[]
    for i in board: #block level
        for subI in i: #row
            for subsubI in subI: #item
                num.append(subsubI)
    print("---------------------------------------")
    print("| {} | {} | {} || {} | {} | {} || {} | {} | {} |".format(num[0],num[1],num[2],num[9],num[10],num[11],num[18],num[19],num[20]))
    print("---------------------------------------")
    print("| {} | {} | {} || {} | {} | {} || {} | {} | {} |".format(num[3],num[4],num[5],num[12],num[13],num[14],num[21],num[22],num[23]))
    print("---------------------------------------")
    print("| {} | {} | {} || {} | {} | {} || {} | {} | {} |".format(num[6],num[7],num[8],num[15],num[16],num[17],num[24],num[25],num[26]))
    print("---------------------------------------")
    print("---------------------------------------")
    print("| {} | {} | {} || {} | {} | {} || {} | {} | {} |".format(num[27],num[28],num[29],num[36],num[37],num[38],num[45],num[46],num[47]))
    print("---------------------------------------")
    print("| {} | {} | {} || {} | {} | {} || {} | {} | {} |".format(num[30],num[31],num[32],num[39],num[40],num[41],num[48],num[49],num[50]))
    print("---------------------------------------")
    print("| {} | {} | {} || {} | {} | {} || {} | {} | {} |".format(num[33],num[34],num[35],num[42],num[43],num[44],num[51],num[52],num[53]))
    print("---------------------------------------")
    print("---------------------------------------")
    print("| {} | {} | {} || {} | {} | {} || {} | {} | {} |".format(num[54],num[55],num[56],num[63],num[64],num[65],num[72],num[73],num[74]))
    print("---------------------------------------")
    print("| {} | {} | {} || {} | {} | {} || {} | {} | {} |".format(num[57],num[58],num[59],num[66],num[67],num[68],num[75],num[76],num[77]))
    print("---------------------------------------")
    print("| {} | {} | {} || {} | {} | {} || {} | {} | {} |".format(num[60],num[61],num[62],num[69],num[70],num[71],num[78],num[79],num[80]))
    print("---------------------------------------")  
#test
board=build_board()
board=fill_board(board)
display=display(board)
any help would be most welcome thanks and this isn't near complete
Edit: here is an example of the output---------------------------------------
|   | 1 |   ||   |   |   ||   |   |   |
---------------------------------------
|   |   |   ||   |   |   ||   |   | 1 |
---------------------------------------
|   |   |   || 1 |   |   ||   |   |   |
---------------------------------------
---------------------------------------
|   |   |   ||   |   |   || 1 |   |   |
---------------------------------------
|   |   |   || 1 |   |   ||   |   |   |
---------------------------------------
|   |   | 1 ||   |   |   ||   |   |   |
---------------------------------------
---------------------------------------
|   |   |   ||   |   |   ||   |   | 1 |
---------------------------------------
|   | 1 |   ||   |   |   ||   |   |   |
---------------------------------------
|   |   |   ||   |   | 1 ||   |   |   |
---------------------------------------
 
     
    