If you want to do an "all-to-all" matching you can do a cartesian product:
import numpy as np
import pandas as pd
df = pd.DataFrame([[100, 'Healthcare']], columns=['Id', 'Dept'])
date = np.array(['2007-01-03', '2007-01-10', '2007-01-17', '2007-01-24'],
                dtype='datetime64[D]')
df['_tmp'] = 0
df2 = pd.DataFrame({'Date': date})
df2['_tmp'] = 0
result = pd.merge(df, df2, on='_tmp').drop('_tmp', axis=1)
print(result)
#     Id        Dept       Date
# 0  100  Healthcare 2007-01-03
# 1  100  Healthcare 2007-01-10
# 2  100  Healthcare 2007-01-17
# 3  100  Healthcare 2007-01-24
This makes it more easily extendable to the case where you have more than one row in the first data frame, if that is relevant for you:
import numpy as np
import pandas as pd
df = pd.DataFrame([[100, 'Healthcare'], [200, 'Security']], columns=['Id', 'Dept'])
date = np.array(['2007-01-03', '2007-01-10', '2007-01-17', '2007-01-24'],
                dtype='datetime64[D]')
df['_tmp'] = 0
df2 = pd.DataFrame({'Date': date})
df2['_tmp'] = 0
result = pd.merge(df, df2, on='_tmp').drop('_tmp', axis=1)
print(result)
#     Id        Dept       Date
# 0  100  Healthcare 2007-01-03
# 1  100  Healthcare 2007-01-10
# 2  100  Healthcare 2007-01-17
# 3  100  Healthcare 2007-01-24
# 4  200    Security 2007-01-03
# 5  200    Security 2007-01-10
# 6  200    Security 2007-01-17
# 7  200    Security 2007-01-24