dataset = {
    'DelNorte':{
        'Westview':15,
        'MtCarmel':20,
        'Poway':35,
        'RanchoBernrdo':50
    },
    'Westview':{
        'DelNorte':15,
        'MtCarmel':35,
        'Poway':25,
        'RanchoBernrdo': 45
    },
    'MtCarmel':{
        'Westview':35,
        'DelNorte':20,
        'Poway':40,
        'RanchoBernrdo':30
    },
    'Poway':{
        'Westview':25,
        'MtCarmel':40,
        'DelNorte':35,
        'RanchoBernrdo':15
    },
    'RanchoBernardo':{
        'Westview':45,
        'MtCarmel':30,
        'Poway':15,
        'DelNorte':50
    }
}


def fastestroute(start,data):
   drivetime = 0
   order = []
   for key1, value1 in dataset.items():
        print("key1", key1, "value1", value1)
        print(value1)
        temp = ""
        temp += key1
        lowestValue = 0
        for key2, value2 in value1.items():
            print("value2", value2)    
            if lowestValue == 0:
                 lowestValue = value2
            if value2 <= lowestValue:
                 lowestValue = value2
                 drivetime = drivetime + lowestValue
                 lowestKey = key2
                 order.append(key2)
            print("Lowest Value is:", lowestValue)
            print("Drivetime:", drivetime)
            print("Lowest Key", lowestKey)
        print(order)
        return(drivetime,order)
   dataset['start']
   for data in dataset:
        print(drivetime, order)

def nested_dict_values_iterator(data):
 for value in data.values():
     if isinstance(value, dict):
         for v in nested_dict_values_iterator(value):
             yield v
         else:
             yield value
             
#for value in nested_dict_values_iterator(dataset):
 #   print(value)
                 

def fastestroute2(start, data):
    drivetime = 0
    order = []
    order.append(start)
    global lowestKey
    lowestKey = start
    for i in dataset:
        #print("Dataset", dataset[i])
        #print("data i: ", data[i].keys())
        #print(data[i].values())
        #print("Data Poway", data['Poway'])
        for key2, value2 in dataset.items():
            key2 = lowestKey
            print("First Dictionary key2", key2, "value2", value2)
            #print(value2)
            temp = ""
            temp += key2
            lowestValue = 0
            for key2, value2 in value2.items():
                print("Second Dictionary key2", key2)
                print("value2", value2)    
                if lowestValue == 0:
                    lowestValue = value2
                if value2 <= lowestValue and key2 not in order:
                    lowestValue = value2
                    drivetime = drivetime + lowestValue
                    lowestKey = key2
                    print("Lowest key inside Second Dictionary : ", lowestKey)
                    # check if key is not already in order[]
                    if key2 not in order:
                        order.append(key2)
                print("Lowest Value is:", lowestValue)
                print("Drivetime:", drivetime)
                print("Lowest Key", lowestKey)
            print(order)
        return(drivetime,order)
start = 'DelNorte'
fastestroute2(start,dataset)

# 'dataset' is the name of the nested key value pair
#fastestroute(start,dataset)

#print(data)
#    print(data, dataset[data])
#print(dataset.values())
#min(dataset, key=dataset.get)
#print(dataset.values())
#print(max(dataset.values()))